GeoWebCache - A Great New WMS Tile Cacher

The good folks at the Open Planning Project have released a Java-based tile caching engine, GeoWebCache. From the web site:

GeoWebCache is a cache for WMS tiles implemented as an HttpServlet? in Java. It is run through a container like Jetty, Tomcat or JBoss. The response time is measured in milliseconds. It is based on JTilecache, a Google Summer of Code project by Chris Whitney.
In a nut shell, a tile caching engine is a WMS server that points to other WMS servers. It caches the images from those other servers (either on the fly or seeded), so it's shelling out pre-rendered images rather than rendering map images on the fly, making it extremely fast.

I’ve been playing around with the latest release of GeoWebCache, and after some experimenting and testing, I have to say it’s fantastic. So fantastic I’m probably going to use it to replace Tilecache. And I like Tilecache.

Some of the feature highlights of GeoWebCache include:

  • Metatiling
  • Support for multiple WMS backends per layer, queried in round robin fashion with automatic failover
  • Microsoft Virtual Earth tiling support
  • Google Maps tiling support
  • Support for png (including 8 bit), jpeg, gif, and tiff output
  • It's crazy fast
  • Other niceties, like a cache expiration setting, so it can sorta maintain it's own cache currency
But the biggest thing for me is how easy it was to get up and running. It's basically (1) deploy the war file in Tomcat, and (2)....there is no 2. It's working. All you need to do is make property files for your layers. By comparison, Tilecache is a bit of a pain to get running correctly*, and although I regularly slime python with praise and adoration, even running under mod_python it isn't exactly a screamer.

GeoWebCache is undergoing rapid development (current release is 0.7.2), but even at a pre-1.0 release it’s definitely worth a look. Future releases are slated to include integration with GeoServer.

*Caveat: I’m an idiot.