Geobrowser JavaScript APIs - Elisabeth WEINKE und Lucia MORPER-BUSCH
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
233 Geobrowser JavaScript APIs Elisabeth WEINKE und Lucia MORPER-BUSCH 1 IFFB Geoinformatik, Universität Salzburg · elisabeth.weinke@sbg.ac.at Zusammenfassung Heutzutage existiert eine breite Vielfalt an Geobrowser APIs (Application programming interface) zur Kartengestaltung für den Web- und mobilen Bereich. Die Hersteller bieten kommerzielle und Open-Source APIs für die 2D- und 3D-Visualiserung der Geodaten an. Beobachtet man den Markt, dann fällt auf, dass es einen harten Wettkampf gibt: Es wird versucht, die besten Hintergrundkarten bereitzustellen und neue Versionen sind auf Ge- schwindigkeit optimiert. In diesem Beitrag werden die gängigsten und aktuellsten Geo- browser APIs nach verschiedensten Kriterien evaluiert. 1 Einleitung Es wurden in einer Studie neun JavaScript Map APIs für die Entwicklung von Informati- ons- und Expertenplattformen getestet. Darunter befinden sich die folgenden vier kommer- ziellen Produkte, die unter bestimmten Nutzungsrechten kostenfrei verwendet werden kön- nen: Bing Maps API von Microsoft (ehemals Virtual Earth), Here Maps API von Nokia (ehemals bezeichnet als Nokia OVI Maps API, die mit Yahoo Maps zusammengeführt wurde), MapQuest API von der gleichnamigen Firma. Aus dem Open-Source-Bereich wur- den OpenLayers, Leaflet, Modest Maps und PolyMaps getestet. Als freie API wurde ebenso die ArcGIS JavaScript API von ESRI evaluiert, die kostenfrei zur Verfügung steht. Am interfakultären Fachbereich Geoinformatik in Salzburg wurden bis dato alle Web-Karten- applikationen für die verschiedensten Anwendungsdomänen entweder mit der Google Maps API oder OpenLayers durchgeführt. Um für künftige Anwendungen auch andere APIs einzusetzen, wurden im Rahmen einer Studie die oben beschrieben JavaScript APIs mit der Google Maps API und OpenLayers verglichen und nach bestimmten Kriterien evaluiert. Bei der Auswahl der Kriterien wurde vor allem darauf geachtet, dass möglichst viele Ele- mente und Funktionen, die für den Aufbau einer Web-Kartenapplikation benötigt werden, über die APIs bereitgestellt werden, um den Programmieraufwand (zumindest was den Aufbau der Basis betrifft) in Grenzen zu halten, da in vielen Anwendungen ohnehin noch ein großer Anteil an spezifischen Useranforderungen programmiert werden muss. 2 Methodik 2.1 Kriterien Zur Formulierung von Kriterien wurden zwei Kategorien von räumlichen Anwendungen spezifiziert: 1) Informationsplattformen, die dem User zur reinen Informationsabfrage die- nen und 2) Expertenplattformen zur Datenerfassung und -analyse. Die Evaluationskriterien wurden in die folgenden Kategorien unterteilt: Kartenkontrollelemente, Basisfunktionen, Hintergrundkarten, Overlays und Dokumentation (siehe Kapitel 2.1.1 – 2.1.6). Strobl, J., Blaschke, T., Griesebner, G. & Zagel, B. (Hrsg.) (2013): Angewandte Geoinformatik 2013. © Herbert Wichmann Verlag, VDE VERLAG GMBH, Berlin/Offenbach. ISBN 978-3-87907-533-1. Dieser Beitrag ist ein Open-Access-Beitrag, der unter den Bedingungen und unter den Auflagen der Creative Commons Attribution Lizenz verteilt wird (http://creativecommons.org/licenses/by/3.0/).
234 E. Weinke und L. Morper-Busch 2.1.1 Kartenkontrollelemente Damit sich der User auf der Karte zurechtfindet, sollte die API bestimmte Elemente zur Interaktion bereitstellen: Diese Elemente werden als Kartenkontrollelemente bezeichnet. Folgenden Kontrollelemente sollten zur Verfügung stehen: 1) Zoomkontrollelement (Tools zum Steuern der Zoomstufe der Karte, i. d. R. Plus- und Minus-Buttons), 2) Pan- Kontrollelement (integrierte Funktion zum Verschieben der Karte mit der Maus), 3) Maß- stabkontrollelement (zeigt den Kartenmaßstab an), 4) Layerauswahl-Kontrollelement (er- möglicht das Umschalten zwischen verschiedenen Hintergrundkarten wie Straßen- und Satellitenkarten oder das Ein- und Ausblenden von weiteren Daten- schichten (Overlays), 5) Übersichtskarten-Kontrollelement (zur Darstellung einer Übersichtskarte), 6) Ortssuche (Eingabe einer Adresse und/oder Koordinaten zur Anzeige eines entsprechenden Kartenausschnitts). Für beide Anwendungsfälle sowohl für die In- formations- als auch für Expertenplattformen ist es vorteilhaft, wenn diese sechs Kontroll- elemente von den APIs zur Verfügung gestellt werden. 2.1.2 Basisfunktionen für Informationsplattform Neben der Bereitstellung von Kontrollfunktionen zur Navigation und Orientierung in der Karte sollen Informationen der einzelnen Datenschichten abgefragt werden können. Dafür werden Events auf Karten und Overlays als auch die Bereitstellung von Funktionen zur Visualisierung von Informationsfenstern (Popups) benötigt. Die Client-Server-Requests und werden z. B. mit PHP-, Java-Technologien oder über standardisierte Schnittstellen umgesetzt. 2.1.3 Basisfunktionen für Expertenplattformen Je nach Anwendungsfall werden unterschiedliche Basisfunktionen für Expertenplattformen benötigt, wobei diese auf den Basisfunktionen der Informationsplattform aufbauen. Von den Autoren wurden nach eigener Erfahrung die folgenden Funktionen als Basisfunktionen für eine Expertenplattform definiert: Dateneingabe, inkl. Digitalisier- und Messfunktion, Routing. Die Info-Fenster, die in den Plattformen zur Informationsabfrage dienen, werden ebenso zur Eingabe von a-räumlichen Parametern verwendet, um diese zusätzlich zur Geo- metrie zu speichern. Zur Erfassung von räumlichen Daten spielt eine vordefinierte Digitali- sier- und Editierfunktion eine wichtige Rolle. Daten werden nach der Aufnahme meist ent- weder über WFS-T oder mit z. B. JSP- oder PHP-Technologie in einer räumlichen Daten- bank gespeichert. Weist eine API eine Digitalisierfunktion auf, dann besteht nicht immer die Möglichkeit, die Daten auch mittels dieser API in einer Datenbasis zu speichern, denn zum Teil werden nur Geometrien gezeichnet und die Datenspeicherung muss wie mit oben beschriebenen Servertechnologien programmiert werden. Sollen Daten erhoben werden, ist es meist sinnvoll, ebenso ein Messwerkzeug bereitzustellen. In vielen Anwendungen wird ein Routing benötigt. 2.1.4 Hintergrundkarten Zur Orientierung auf der Karte werden sowohl in Informations- als auch in Expertenplatt- formen qualitative hochwertige Hintergrundkarten mit einer guten räumlichen Auflösung benötigt. So werden häufig die Karten von Google oder OSM in die verschiedensten An- wendungen eingebunden, um dem User eine gute Datengrundlage bereitzustellen. Open- Source APIs weisen keine eigenen Hintergrundkarten auf. Zur Einbindung von Karten von Drittanbietern müssen vordefinierte Programmierschnittstellen bereitgestellt werden.
Geobrowser JavaScript APIs 235 2.1.5 Overlays Die Einbindung von standardisierten Datenformaten spielt eine wesentliche Rolle, da diese Daten entweder mit professionellen GIS oder einer Middleware wie Geoserver professio- nell aufbereitet werden können. Mindestanforderungen sind die Einbindungsmöglichkeit von Daten im KML oder WMS Format. 2.1.6 Dokumentation Zum Schluss wird noch die Qualität der Dokumentation, die Verfügbarkeit von Beispielen, Tutorien und Foren evaluiert, da durch eine große Anzahl an Beispielen und qualitativ hochwertigen Dokumentationen der Einarbeitungsaufwand deutlich verringert wird. 2.2. Bewertung und Analyse 2.2.1 Kontrollelemente Die Google Maps API v3, Bing Maps API, Here Maps API, MapQuest API, OpenLayers, Leaflet und ArcGIS JS API stellen dem Entwickler alle im Kapitel 2.1.1 aufgeführten Kon- trollfunktionen bereit (siehe Tab 1). Wobei bezogen auf die Funktion zur Ortssuche Anbie- ter wie Google, Nokia oder Microsoft eigene Datenbanken verwenden und z. B. MapQuest oder OpenLayers Datenbanken von Drittanbietern (z. B. OpenStreetMap) einbinden. Die modular aufgebaute Leaflet API stellt dem Entwickler die spezifizierten Kontrollfunktionen zum Teil mithilfe von Plug-ins zur Verfügung. Modest Maps und PolyMaps besitzen den geringsten Umfang an Kontrollelementen, der sich auf die Zoom- und Pan-Funktion be- schränkt. Tabelle 1: Kartenkontrollelemente (v=verfügbar; nv=nicht verfügbar) APIs Zoom Pan Maßstab Kartenauswahlfunktion Übersichtskarte Ortssuche Google Maps v v v v v v Bing Maps v v v v v v Here Maps v v v v v v MapQuest v v v v v v OpenLayers v v v v v v Leaflet v v v v v v Modest Maps v v nv nv nv nv PolyMaps v v nv nv nv nv ArcGIS JS API v v v v v v 2.2.2 Basisfunktionen für Informations- und Expertenplattformen Acht von neun getesteten APIs weisen die in Kapitel 2.1.2 spezifizierten Voraussetzungen für die Entwicklung einer Informationsplattform auf (siehe Tab 2). Google Maps, Map- Quest, OpenLayers und die ArcGIS JS API stellen alle spezifizierten Funktionen bereit, um eine Informationsplattform als auch Expertenplattform zu erstellen. PolyMaps und Modest Maps weisen den geringsten Funktionsumfang auf. So stellt Modest Maps nur die Funktion Info-Fenster zur Verfügung. Bing Maps, Here Maps, PolyMaps und Modest Maps besitzen keine Funktion zum Messen von Distanzen auf der Karte. Modest Maps und PolyMaps stellen keine Digitaliser- und Editierfunktion bereit. Leaflet bietet ein Plug-in zum Zeichnen von Geometriedaten, das nicht mit einer Datenbank-Editier-Funktion verbunden ist. Zu erwähnen sei an dieser Stelle,
236 E. Weinke und L. Morper-Busch dass Google, Nokia und Microsoft zusätzlich zum Routing Informationen zur aktuellen Verkehrslage zur Verfügung stellen. Tabelle 2: Funktionen (v=verfügbar; nv=nicht verfügbar) APIs InfoFenster Digitalisieren u. Editieren Messen Routing Google Maps v v v v Bing Maps v v nv v Here Maps v v nv v MapQuest v v v v OpenLayers v v v v Leaflet v v v nv Modest Maps v nv nv nv PolyMaps nv nv nv nv ArcGIS JS API v v v v 2.2.3 Hintergrundkarten Die APIs Google Maps, Bing Maps, Here Maps, MapQuest und ArcGIS JS API bieten Sa- telliten- und Straßenkarten an, wobei MapQuest die Straßenkarten von OpenStreetMap an- bietet. Geländekarten werden von Google und Nokia angeboten. Bing Maps bietet zusätz- lich noch Hintergrundkarten im 45° Bird-View an. Google Maps und Bing Maps sind von den untersuchten APIs die APIs, die auch 3D-Hintergrundkarten darstellen können. Wobei z. B. bei Google Maps v3 eine direkte Einbindung der Google Earth 3D Satellitendaten – wie es in der Google Maps API v2 möglich war – in der Google Maps API Version v3 derzeit noch nicht möglich ist. Alle Open-Source APIs stellen Schnittstellen zur Einbin- dung von Hintergrundkarten zur Verfügung. So verwendet z. B. Leaflet MapBox-Karten- dienste (konfigurierbare Hintergrundkarten vom selben Anbieter) neben OSM und Google. 2.2.4 Overlays – Layerformate Hier werden die APIs danach verglichen, welche Layerformate nach OGC-Standard unter- stützt werden. KML wird von den meisten der spezifizierten APIs (d. h. von Google Maps, Bing Maps, Here Maps, MapQuest, OpenLayers und ArcGIS JS API) unterstützt. WMS-Layer können von Google Maps, BingMaps, OpenLayers, Leaflet und ArcGIS JS API eingebunden werden, WFS-Layer ausschließlich von OpenLayers inkl. Editierfunktio- nen. Die Open-Source APIs Modest Maps und PolyMaps unterstützen keines der beiden Formate und PolyMaps z. B. ermöglicht die Dateneinbindung mittels GeoJSON. Tabelle 3: Overlays Tabelle 4: Dokumentation APIs KML WMS APIs Qualität der Doku Samples Foren Auswertung Google Maps v v Google Maps hoch v v schnelle Einarbeitung Bing Maps v v Bing Maps hoch v v schnelle Einarbeitung Here Maps v nv Here Maps hoch v schnelle Einarbeitung MapQuest v nv MapQuest hoch v v schnelle Einarbeitung OpenLayers v v OpenLayers mittel v v aufwendige Einarbei- tung Leaflet nv v Leaflet mittel v v schnelle Einarbeitung Modest Maps nv nv Modest Maps niedrig v nv aufwendige Einarbei- tung PolyMaps nv nv PolyMaps niedrig v nv aufwendige Einarbei- tung ArcGIS JS API v v ArcGIS JS API hoch v v schnelle Einarbeitung
Geobrowser JavaScript APIs 237 2.2.5 Dokumentation Die Dokumentationen, Foren und Samples als Informationsquelle für Entwickler von Map- Applikationen sind erwartungsgemäß bei den kommerziellen APIs besser als bei den Open- Source APIs. Bei Modest Maps und PolyMaps ist es kaum möglich über die wenigen Bei- spiele hinaus genauere Informationen zu bekommen, aber auch bei OpenLayers besteht Verbesserungsbedarf der Dokumentation. 3 Ergebnis Google Maps zählt zu den APIs, die den größten Funktionsumfang aufweisen. Sowohl bei den Kontrollelementen als auch bei den spezifizierten Basisfunktionen für Informations- plattformen und Expertenplattformen. Bei der Bereitstellung von Hintergrundkarten inves- tiert Google sehr viel und hat dadurch auch die meisten und besten Kartengrundlagen in 2D und 3D. Zur Einbindung von Overlays wird neben GeoRSSFeeds die OGC-Standards KML und WMS unterstützt. Google stellt eine gute Objektdokumentation, Tutorials und Beispie- le für die Google Maps API zur Verfügung, sodass die Einarbeitung in diese API leicht fällt. Bing Maps von Microsoft kann vom Funktionsumfang mit Google sehr gut mithalten. Bing Maps stellt neben den üblichen Funktionen eigene APIs für Geocoding, Routing und die Einbeziehung von Verkehrsdaten bereit. Ein Alleinstellungsmerkmal von Bing Maps ist die Bereitstellung der 45°Birdviewdaten. Die Dokumentation und die Beispiele sind bei der Einarbeitung in die API sehr hilfreich. Nach der Vereinigung von Yahoo Maps und Nokia Maps ist Here Maps von Nokia nun vom Funktionsumfang eine gute Alternative zu Google Maps und Bing Maps. Here Maps stellt Satelliten-, Straßen- und Terrainkarten bereit und bietet ebenso für die Ortssuche, das Routing und für die Abfrage von Verkehrsinformatio- nen Funktionen an. Die Dokumentation von Here Maps ist sehr ausführlich und es werden zahlreiche Beispiele zur Verfügung gestellt. MapQuest besitzt eine freie und kommerzielle Map API. Der Umfang der Kontrollfunktionen als auch der spezifizierten Basisfunktionen kann mit den kommerziellen Map APIs von Google, Microsoft und Nokia mithalten. Map- Quest stellt als Hintergrundkarten OpenStreetMap und freie Satellitendaten zur Verfügung. Es werden gut dokumentierte Beispiele und eine gut beschriebene Dokumentation bereitge- stellt. OpenLayers ist ein Open-Source-Projekt und ist unter den offenen APIs die ausge- reifteste und umfangreichste, wird häufig mit OSM-Daten genutzt, hat aber Schnittstellen zu allen gängigen Kartendiensten und -formaten, bietet z. B. eine Konvertierung zwischen den verschiedenen Koordinatensystemen. OpenLayers ist sehr weitverbreitet und hat im Open-Source-Bereich eigentlich keine Alternative. Die Dokumentation ist zum Teil etwas unübersichtlich aufgebaut. Es ist eine längere Einarbeitungszeit erforderlich. Ein Alleinstel- lungsmerkmal ist das Editieren von WFS-T Map Layern. In der kommenden Version wird sie auch einen 3D-Earth-Viewer enthalten. Leaflet von CloudMade ist deutlich jünger, mo- derner als die meisten Open-Source APIs, hat aber schnell an Popularität gewonnen und ist auch schon vergleichsweise gut dokumentiert. Die Möglichkeiten sind nicht so umfangreich wie bei OpenLayers, allerdings ist die API leichter zu handhaben und mithilfe von Plugins kann man schöne Effekte einbauen, das leistungsstarke Objektmodell kann durch externe Funktionen ergänzt werden. Da Leaflet modular aufgebaut ist, verbraucht sie so wenig Speicherplatz wie nötig, was sich positiv auf die Performance auswirkt. In der Kombination mit MapBox-Kartendiensten (konfigurierbare Hintergrundkarten, auch von CloudMade) stellt sie eine sehr gute Alternative für ansprechende kleinere Anwendungen dar. Modest
238 E. Weinke und L. Morper-Busch Maps reduziert die Funktionalität auf’s Wesentliche, die Open-Source API mit Minimalum- fang bietet aber Erweiterungsmöglichkeiten durch einfaches Einbetten von anderen Biblio- theken, z. B. Leaflet. Das Besondere an PolyMaps ist, dass diese API direkt im Browser gerenderte Vektorobjekte (z. B. Marker oder Routen) mit SVG (Scalable Vector Graphics) unterstützt. Für die Einbindung räumlicher Daten sieht die PolyMaps-Bibliothek das GeoJ- SON-Format vor. Mit PolyMaps können große flächenbezogene Datensätze visualisiert werden, der maßstabsbezogene Detailgrad der Darstellung wird durch das dynamische Kacheln der Rohdaten und nicht von fertig gerenderten Bildkacheln erzeugt, was die Per- formance erhöht. PolyMaps hat nur eine knappe Dokumentation, weder Foren noch Mai- ling-Listen, dafür aber einige Online-Beispiele, der Funktionsumfang ist relativ gering. Zusätzlich zu JavaScript-Kenntnissen ist auch die Einarbeitung in SVG und GeoJSON notwendig. Die ArcGIS Javascript API von ESRI unterstützt die üblichen Geometrie-Ty- pen, diverse GUI-Controls und Layer (WMS, OpenStreetMap, hauptsächlich ESRI-eigene Hintergrundkarten und Layerformate). Als Basis für die umfangreiche API, die auch ver- schiedene Editierfunktionen aufweist, dient das JavaScript Toolkit DOJO. Die API ist ESRI-typisch gut dokumentiert und die Foren sind eine sehr gute Informationsquelle. 4 Fazit Es wurden in einer Studie neun JavaScript Map APIs für die Entwicklung von Informati- ons- und Expertenplattformen getestet. Bei der Auswahl der Kriterien wurde vor allem darauf geachtet, dass möglichst viele Elemente und Funktionen, die für den Basisaufbau einer Web-Kartenapplikation benötigt werden, über die APIs bereitgestellt werden. Außer- dem wurde auf die Einhaltung von OGC-Standards geachtet. In der Studie wurde festge- stellt, dass Google Maps, OpenLayers und die ArcGIS JS API in Bezug auf den Funktions- umfang, die OGC-Dateneinbindungsmöglichkeit und die Dokumentation die besten Resul- tate erzielt haben. Google befindet sich derzeit ebenso bei der Bereitstellung von Hinter- grundkarten noch an der Spitze. Für die neue OpenLayers Version 3 wird zurzeit an einer 3D-Extension gearbeitet, auf die die Open-Source Community gespannt ist. Die Anbieter Mikrosoft, Nokia und MapQuest stellen mittlerweile ebenso eine gute Alternative zu Goog- le Maps dar. Es werden wichtige Kontrollelemente und Funktionen bereitgestellt, Daten können standardisiert eingebunden werden und es werden Satelliten- und Straßenkarten zur Verfügung gestellt. Unter den evaluierten Open-Source APIs wies OpenLayers mit Abstand die meisten Kontrollelemente und Funktionen auf, sie stellt Elemente für anspruchsvolle Datenbank-Anwendungen inkl. Abfragen und Editieren bereit. Für kleinere Anwendungen ohne Datenbankanbindung ist jedoch die Leaflet API mit MapBox-Hintergrundkarten eine gute Alternative, um ansprechende Lösungen in relativ kurzer Zeit zu erstellen, da die Grundelemente einfacher zu kombinieren sind. Bei allen getesteten Open-Source APIs war der Einarbeitungsaufwand größer als bei den kommerziellen Anbietern aufgrund von gerin- ger Dokumentation und dadurch verursachten Internetrecherchen. Was sehr zu empfehlen ist, und auch z. T. schon vielfach angewendet wird, ist die Kombination von Elementen der verschiedenen JavaScript APIs. So kann man beispielsweise den Geocoder von Google (zur Adresssuche) in OpenLayers-Anwendungen integrieren.
Sie können auch lesen