Seeding is an automated way of systematically rendering all tiles within a specific area. The seeding functionality in GeoWebCache currently accepts a projection, a bounding box, a set of zoomlevels and a format. The bounding box is automatically expanded to the nearest metatile bounds for each zoomlevel before GeoWebCache starts requesting the tiles from the backend. The process is multi-threaded and can make use of multiple backend servers simultaneously. Depending on the extent of your data, and the number of zoomlevels, seeding a complete layer can take anything from minutes to months. The number of tiles that have to be rendered increases exponentially with the number of zoomlevels.
One possible improvement is to replace the bounding boxes in the request with simple polygons. The rationale is that very few natural features align perfectly with the grid. For example, if the area you are interested in is a triangle, then you must set your bounds to the smallest rectangle that covers this triangle. In the best case, this will seed roughly twice as many tiles as you actually need, wasting both time and disk space.
Another improvement that can be made, independently of the previous case, is depth-first seeding. Since seeding to high zoomlevels can take an extrodinary amount of time, most users settle for a comibnation of seeding and letting clients dynamically populate the cache. The current seeder fills an entire zoomlevel before stepping up to the next, but in many cases we want to emphasize the data at the center of the bounding box rather than the outskirts. A depth-first seeder works by only fetching the center tile before moving up to the next level. Once the center tile is cached for all zoomlevels, an adjacent tile is picked and the process repeats.
Funding
This roadmap item is currently unfunded.
Get a quote now!
Get a quote or read more about core development to add your support to a road-map item.
Other Roadmap Items
Funded: GeoWebCache does a great job caching static datasets and these improvements help make it a more active cache.
Seeding is the process of pre-populating the cache with tiles. Currently a seed request can only take a bounding box. One improvement we could make is to let the seeder take a polygon, which can efficiently delimit the area of interest, saving significant time and bandwidth. Another improvement to be made is depth-first seeding, for cases when the center of the seed is of the most interest.
Respond to arbitrary zoom levels (WMS through tile recombination)
Funded: These improvements make GeoWebCache a more intelligent cache enabling it to serve most any WMS request, instead of being limited by a pre-set cache.