About

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 schema

MapProxy is a tile cache solution, but also offers many new and innovative features like full support for WMS clients.

MapProxy is actively developed and supported by Omniscale, it is released under the Apache Software License 2.0, runs on Unix/Linux and Windows and is easy to install and to configure.

News

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

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)

Authorization

MapProxy comes with a flexible authorization 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 authorization API

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 http://localhost:8080/.

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

For detailed installation and configuration information read the documentation. Release information is available at the download page.

Demo

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