Map Server
Aufbau und Schnittstellen des nxMapServers

Umsetzung als Windows-Dienst
Der nxMapServer ist als Windows-Dienst umgesetzt und benötigt so keinen angemeldeten Benutzer, er läuft permanent im Hintergrund und kann nicht versehentlich beendet werden. Zusätzlich können z.B. automatische Updates aktiviert bleiben - bei einem updatebedingten Neustart des Rechners ist der MapServer lediglich für die Neustartzeit nicht erreichbar, da er vom System automatisch wieder gestartet wird.
Kontrollprogramm
Um einen schnellen Überblick des Serverzustands zu ermöglichen und eine bequeme Konfigurationsmöglichkeit zur Verfügung zu stellen, wird ein sog. Kontrollprogramm mit dem Server ausgeliefert. Dieses ermöglicht das Starten und Stoppen des Dienstes, sowie alle nötigen Konfigurationseinstellungen.


nxMapManager
Mit der Installation des Mapservers wird der nxMapManager installiert. Dieser ermöglicht Ihnen einfach und unkompliziert Ihre Navimatix-Karten zu verwalten. Es werden bereits installierte Karten angezeigt, sowie weitere verfügbare. Es stehen ihnen jeder Zeit kostenlose Karten auf Basis von OSM zur Verfügung. Haben Sie Karten von Navimatix gekauft, so haben Sie über ein Login Zugang zu diesen.
Administration per Weboberfläche
Die Verwaltung von Nutzern und Zugriffsrechten erfolgt beim MapServer bequem über eine Weboberfläche. Jede aufrufbare Funktion der Schnittstelle (REST) kann öffentlich freigegeben, oder nur bestimmten Nutzern erlaubt werden. Hier kann ebenso der Status des Servers ermittelt werden, Kartenansichten können vorab betrachtet werden und Geocodings können zum Test ausgeführt werden.
WMS-Fähigkeit
Der nxMapServer unterstützt die beiden WMS Standardkommandos der WMS-Spezifikation und kann damit in allen GIS genutzt werden, welche den WMS-Standard ihrerseits unterstützen. Das sind zum Beispiel Grass, ArcGIS-Komponenten und OpenJump.
Verwendbare Karten
Mit dem nxMapServer sind alle Navimatix-Karten verwendbar. Es können beliebig viele Karten in einer Serverinstanz geladen werden. Eine Navimatix-Karte besteht aus Kartendaten von bestimmten Rohkartendatenanbietern wie NAVTEQ (Nokia), OpenStreetMap oder anderen lokalen Anbietern, im Navimatix Kartenformat. Dieses unterstützt die wichtigen Kartenfunktionen (Rendering, GeoCoding/ReverseGeoCoding, Routenberechnung, Umkreissuche, etc...) besonders effizient.
Systemvoraussetzungen
► CPU: Dual-Core-CPU 2 GHz
► Arbeitsspeicher: 4 GB RAM
► Festplatte: 10 GB freier Speicher
► Betriebssystem: ab Windows XP bis Windows 10, 32bit oder 64bit
Da der nxMapServer als nativer Windows-Dienst (gemanagt im service control panel von Windows) realisiert ist, benötigt er lediglich das Datenbanksystem "Firebird" als Voraussetzung. Je nach verwendetem Systemtyp (x86 oder x64) empfehlen wir die entsprechende Version von http://www.firebirdsql.org/ zu installieren.
Eine Java-VM oder ein .NET-Framework werden nicht benötigt.
Weitere Hinweise
Prinzipiell wirkt sich eine höhere Leistung des Rechners, auf dem der nxMapServer läuft, immer positiv auf die Performance aus. Je mehr CPU-Kerne eine Maschine hat, desto mehr Anfragen können von diesem Server gleichzeitig bearbeitet werden, mehr RAM führt zu weniger Festplattenzugriffen.
Je nach Größe und Anzahl der verwendeten Karten wird die Festplattengeschwindigkeit immer wichtiger, so empfehlen wir die Karten in ein RAM-Drive zu legen oder SSD-Festplatten zu verwenden.
API
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.
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
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.