MapProxy

MapProxy is an open source proxy for geospatial data. It caches, accelerates and transforms data from existing map services and serves any desktop or web GIS client.

MapProxy

Features of MapProxy

Tile cache

MapProxy is a tile server (WMS-C, TMS, WMTS, KML SuperOverlays). It reads data from:

  • WMS sources (1.0.0–1.3.0)
  • TMS/WMTS sources
  • Mapserver and Mapnik configurations
  • any TileCache, Google Maps or Bing compatible source
Other features:
  • cache data on filesystem, as MBTiles or inside CouchDB
  • reproject WMS sources to other SRS
  • stores identical images just once (e.g. ocean tiles)
  • embed watermark in tiles
  • merge multiple sources
  • limit sources to polygon areas
  • many more

WMS

MapProxy is also a full compliant WMS server and supports any WMS client (desktop and web). It supports WMS responses from cached data:

  • merges tiles and scales or reprojects images
  • accelerates existing WMS 10 to 100 times
and cascaded WMS services:
  • multi-threaded requests
  • merges multiple sources
  • adds transparency to opaque layers
  • reprojects on-the-fly

It also supports combinations of cached and cascaded layers.

Other features:
  • respond to `GetLegendGraphic` requests
  • cascade ``GetFeatureInfo`` requests with optional XSL transformations
  • limit sources to polygon areas
  • convert WMS versions and image formats
  • support for non-image raster data like DEMs

Security

MapProxy comes with a flexible security API that allows you to add fine-grained control over services and layers. You can even restict access of single layers to polygon extents.

MapProxy

Seeding

You can pre-generate the tile cache for better performance – this is called seeding. Some unique features:

  • fine-grained control over the seed area with Shapefiles, PostGIS or WKT geometries
  • multi-threaded requests, meta-tile splitting and image encoding
  • optimized seeding strategy (to work _with_ your database cache)

Other features

You can use MapProxy to upgrade your SDI without touching your existing servers:

  • offer projections that your sources do not support
  • offer protocol versions and image formats that your sources do not support
  • combine multiple layers and servers
  • hide WMS servers
  • add watermarks and attribution lines to the images
  • etc.
MapProxy is standard compliant and works with the following open specifications:
  • OGC WMS 1.0.0, 1.1.0, 1.1.1, 1.3.0
  • OGC WMTS 1.0.0 (KVP and RESTful)
  • OSGeo TMS 1.0.0
  • OGC KML 2.2 SuperOverlays

Getting started

Curious? With the following four lines you can install MapProxy and all dependencies, create a new configuration and start MapProxy in development mode.

After that you can visit .

sudo aptitude install python-imaging python-yaml libproj0
sudo easy_install mapproxy
mapproxy-util create -t base-config ./
mapproxy-util serve-develop ./mapproxy.yaml

Demo

Below is an OpenLayers client that shows an OpenStreetMap WMS behind a MapProxy installation.
For a full-screen demo visit: osm.omniscale.de