# MapProxy

MapProxy ist eine Open-Source-Software, die es durch WMS- und Tile-Proxys ermöglicht, bestehende Geodienste durch Vorgenerieren und Zwischenspeichern der Daten zu beschleunigen.

## Verwendung

MapProxy kann in einer Geodateninfrastruktur als Vereinheitlichungs- und Beschleunigungselement eingesetzt werden. Die Software kann Daten von verschiedenen Servern mit unterschiedlichen Standards zusammenfassen und sowohl von GIS- als auch von Web-Clients angesprochen werden. MapProxy kann kaskadierend (als reiner Proxy für Kartendienste) und mit der Cache-Funktion verwendet werden.
Weiterhin kann die Software als Sicherheitsschicht vor Kartendiensten dienen. So können ganze Kartendienste oder einzelner Layer, die ein Kartendienst bereitstellt, abgesichert werden.

## Geschichte

Ende 2008 begann das auf Geodaten-Anwendungen auf Open-Source-Basis spezialisierte Oldenburger Unternehmen Omniscale GmbH & Co. KG mit der Entwicklung von MapProxy. Seit Mitte 2009 ist das Programm lauffähig. Am 22. März 2010 veröffentlichte Omniscale das Programm mit der Version 0.8.0 erstmals als Open-Source-Software unter der GNU AGPL License 3.0. Seither wird es durch eine aktive Community kontinuierlich weiterentwickelt. Version 1.0.0 wurde am 3. März 2011 veröffentlicht. Mit der Version 1.1.0 wechselte man im Juni 2011 zur Apache Software License 2.0.

## Sicherheit

MapProxy ist in der Lage, einzelne Kartenebenen verschiedener WMS-Dienste zusammenzufassen. Informationen können so gezielt freigeschaltet oder gesperrt werden. Die eigentlichen WMS-Server sind für den Endbenutzer nicht sichtbar und können beispielsweise durch Firewallsysteme abgesichert werden.

## Technik

MapProxy ist größtenteils in Python geschrieben und wird über YAML-Dateien konfiguriert. Die Software kann sowohl über WSGI als auch über FastCGI mit einem Webserver oder als eigenständiger HTTP-Server betrieben werden.
MapProxy speichert einmal beantwortete Anfragen in seinem Zwischenspeicher (Cache) ab. So erfolgt bei gleichartigen Anfragen an den MapProxy kein erneuter Aufruf des eigentlichen Kartendienstes. Um auch Erstanfragen zu beschleunigen, können Bereiche mit wahrscheinlich hoher Nachfrage vorgespeichert werden. Die Zwischenspeicherung erfolgt gekachelt, d. h. die vom Kartendienst abgefragten Daten werden in rechteckigen Bilddateien abgespeichert. Diese werden vor dem Ausliefern entsprechend der Anfrage wieder zusammengefügt. Dies ermöglicht es, dass der OGC-WMS-Standard eingehalten wird.
Mit MapProxy ist es möglich, nur einzelne Funktionen wie getFeatureInfo oder getLegend eines Kartendienstes zu verwenden und mehrere gleich- oder verschiedenartige Kartendienste zu kombinieren.
Beispiel: MapProxy kann einen Luftbild-WMTS-Server mit einem Straßendaten-WMS-Server und der getFeatureInfo-Funktionalität eines Flächennutzungsdaten-WMS-Servers in einem Layer kombinieren. Dieser Layer kann in einem GI-System eingebunden werden. Man bekommt einen Layer, bei dem Straßendaten über dem Luftbild liegen und Metadaten zu bestimmten Flächen abgerufen werden können.
Die Software beherrscht das Transformieren zwischen verschiedenen Koordinatensystemen. So kann zum Beispiel ein in WGS 84 vorliegender WMS als Gauß-Krüger-Koordinatensystem ausgeliefert werden.

### Standards

MapProxy kann von folgenden Standards Daten entgegennehmen und ausliefern:
* OGC WMS 1.0.0–1.3.0
* OSGeo TMS
* OGC WMTS
* OGC KML 2.2