Accelerate Your Maps with GeoWebCache

Monday, May 19, 2008

As far as web browsers are concerned, our maps don't change all that often, and rendering map images can be very time-consuming. Serving images, on the other hand, requires no computation and is trivial to implement. Google Maps is a good example of this, as all of the maps are pre-rendered and divided into smaller images (tiles). In 2006, a group of Open Source Geo developers met at the annual FOSS4G conference to figure out how to turn the Web Map Service (WMS) standard that all projects implemented in to a tile based service, hatching the WMS-C recommendation. OpenLayers had a quick client side implementation, and soon TileCache provided a Python implementation to cache any WMS Server. Many GeoServer users started using TileCache, but a pure Java solution was desired to ease deployment.

Enter Google's Summer of Code. Through OSGeo, Chris Whitney was mentored by GeoServer developers to build JTileCache, a standalone web application for caching WMS tiles that works in any Java servlet container. Not bad for one summer, right? After the project's completion it was picked up by OpenGeo, the geospatial division of The Open Planning Project, for integration with GeoServer. Arne Kepp took over as lead developer, evolving it to become GeoWebCache, using the same framework and libraries as GeoServer. This means installation with GeoServer is as easy as downloading (.zip) a plug-in and dropping it in. It is completely standards based, so the standalone download can be run in its own server against any compliant WMS.

GeoWebCache not only turns any dynamic mapping server in to a high performance cache for the WMS-C recommendation, but the tiles are also is instantly available for direct use in Google Maps, Virtual Earth and as Super-Overlays in Google Earth. Other features include pluggable caching backends, like JCS and a pure disk cache, and support for 'MetaTiling' for better labels across tiles.

With the 0.8 release (download) GeoWebCache is quickly approaching maturity, and already an outside contributor has contributed a patch - for Mobile Google Maps compatibility - a great sign for a young open source project. Google's Open Source Programs Office is also currently funding investigation to have GeoServer make placemarks and vector data available through Super Overlays, potentially with GeoWebCache integrated for accelerating the responses.