Development Kit

Der nxMapServer kann mit Zugriffsklassen für C# und Delphi ausgeliefert werden. Es existiert jeweils ein Control, welches die Kacheln einer Kartenansicht abruft und zu einer Gesamtkarte zusammenfügt. Darüber hinaus existieren Klassen, welche einen einfachen Zugriff auf die GeoCoding-Funktionen ermöglichen. Für Java existieren Zugriffsbibliotheken aus dem Umfeld von OpenStreetMap, diese können ebenso verwendet werden, da der nxMapServer eine OSM-kompatible Schnittstelle bereitstellt. Mit solchen Zugriffsklassen müssen keine HTTP-Abfragen zusammengestellt und deren Rückgaben interpretiert werden, eigene Entwicklungen sind also bequem umsetzbar.

Für andere Sprachen und Umgebungen kann der Zugriff auf den Server mit einfachen HTTP-Abfragen umgesetzt werden. Der nxMapServer arbeitet mit einer REST-Schnittstelle.

Kachelschnittstelle "Slippy Map"

OpenStreetMap definiert eine Nummerierung der einzelnen Kacheln, aus denen eine Slippy Map zusammengesetzt wird. Der nxMapServer arbeitet mit der selben Kachelstruktur. Eine solche Abfrage zum Beispiel

http://asode.de/maptilesosm/0/0/0.png

liefert, wie bei OSM, die oberste Kachel.

Dem MapServer liegen Vektorkarten zugrunde, ausgeliefert werden aber Rastergrafiken in Form der Kacheln (tiles). Diese Umwandlung, Rendering, führt der Server automatisch bei Bedarf aus. Wurde die entsprechende Kachel bereits gerendert, so wird die bereits abgespeicherte Kachel direkt ausgeliefert. Wenn nicht, wird diese zuerst gerendert, dann gespeichert und dann ausgeliefert. Dieser sog. Kachelcache kann viele GB Festplattenplatz benötigen.

Weitere Informationen unter:

http://wiki.openstreetmap.org/wiki/DE:Slippy_Map und

http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

REST für GeoCoding

Die Kommandos zum GeoCoding werden ebenfalls über HTTP mit Parametern aufgerufen und liefern ein XML-Dokument zurück. Eine Abfrage der Art:

http://asode.de/getaddressdatabyaddress?mapcid=0&country=Deutschland&city=Jena&street=moritz-von-rohr-str

liefert eine Rückgabe:

<?xml version="1.0" encoding="UTF-8" ?>

- <namhttpservice mapcid="1">

<address country="Deutschland" countrycode="DE" countrypart="Thüringen" countrydistrict="Jena" city="Jena" citypart="" street="Moritz-von-Rohr-Strasse" house="" zipcode="07745" building="" language="" administrationid="85220" administrationname="Jena" streetid="1562518" streetname="Moritz-von-Rohr-Strasse" roadelementid="9087006" longitude="11.56931019" latitude="50.91606140" />

</namhttpservice>

Bei der Anfrage kann eine gewünschte Zielsprache angegeben werden. Existieren in der Karte entsprechende Orte, Straßen, etc. in dieser Sprache, so wird in der XML-Rückgabe alles in dieser Sprache stehen. Beispiel: Москва́ kann als Moskau ausgegeben werden.

Eine mögliche Abfrage für das Reverse-GeoCoding, also das Ermitteln einer Adresse aus einer gegebenen Position auf der Karte, könnte so beschaffen sein:

http://asode.de/getaddressbygeoposition?mapcid=0&longitude=11.56931019&latitude=50.91606140

Auch hier liefert der Server ein XML-Dokument mit Stadt, Land, Straße, PLZ und Hausnummer.

Weitere Funktionen zum Thema GeoCoding liefern zum Beispiel Listen von Adressen, welche einem bestimmten Suchmuster entsprechen.