Geobrowser JavaScript APIs - Elisabeth WEINKE und Lucia MORPER-BUSCH

Die Seite wird erstellt Silas Bender
 
WEITER LESEN
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