Mit ArcGIS Runtime steht Entwicklern eine Familie aus nativen SDKs zur Erstellung von Geo-Apps für alle populären Mobile und Desktop Plattformen bereit. Diese SDKs geben Zugriff auf die gesamte Power von ArcGIS. Damit können Daten in der Cloud abgerufen und auch offline genutzt, editiert und synchronisiert, Geo-Analysen ausgeführt, Geokodierung und Suchen nach Positionen durchgeführt und optimale Routen ermittelt werden. Alle nativen Ready-to-use-Apps von Esri, zum Beispiel Collector for ArcGIS, basieren auf ArcGIS Runtime Technologie. Die neue Version 100 (ehemals „Quartz“) ist ein Major Release, das signifikante Änderungen in Funktionalität, Architektur, APIs und Lizenzierung mitbringt.

Neue Funktionalität

Die Highlights sind 3D-Visualisierung, Nutzung neuer Datenformate und erweiterte Unterstützung für Web GIS (ArcGIS Online und Portal for ArcGIS). Darüber hinaus gibt es neue Funktionen und Verbesserungen für den Umgang mit Geometrien, Smart Mapping und Symbolisierung, vereinfachte Authentifizierung und vieles mehr.

ArcGIS Runtime 3D-Scene

In Apps können nun sowohl 2D-Maps als auch 3D-Scenes visualisiert werden. Beide greifen auf die gleichen Datenquellen zu. Für 3D-Scenes gibt es zusätzlich den Scene Layer zum Rendern von lokalen 3D-Scene Layer Packages oder 3D-Scene Services, z.B. zur Darstellung von 3D-Gebäudemodellen. Mit Elevation Services oder lokalen Rasterdaten werden Höhenmodelle für Scenes eingebunden. Weiterhin gibt es für Features spezielle 3D-Symbolisierung, 3D-Optionen in den Renderern und Möglichkeiten für die Manipulation (z.B. Extrusion).

Als Datenquellen sind Mobile Map Packages, Vector Tile Basemaps und viele weitere Datenformate hinzugekommen. Generell wurde das Mapping weiter vereinfacht. Es wird empfohlen, vorkonfigurierte, fertige Maps aus der Cloud oder als Datenpaket einzubinden, statt diese clientseitig aus verschiedenen Datenquellen zusammenzustellen. Jedoch gibt es nun auch Werkzeuge, clientseitig zusammengestellte Maps zu speichern und anderen zur Verfügung zu stellen.

Die Integration von ArcGIS Runtime in das Web-GIS wurde erheblich erweitert. Genutzt werden konnten Inhalte wie Web Maps, Dienste und Daten in der Vorversion auch schon. Nun ist es darüber hinaus möglich, Inhalte neu zu erstellen, zu manipulieren und zu speichern. Zur Authentifizierung unterstützt dabei der Authentication Manager, eine Klasse zum Verwalten und Steuern von sicherheitsrelevanten Konfigurationen.

Änderung der Architektur und APIs

ArcGIS Runtime Architektur

Alle ArcGIS Runtime SDKs haben den gleichen C++ Runtime Core. Dieser steuert die Kommunikation zur Hardware des Zielgerätes und enthält die Business-Logik für die Visualisierung, den Zugriff auf Daten und die Engines für Analysen, Navigation, Labeling und einige mehr. Auf den Runtime Core greifen die plattformspezifischen APIs für iOS, Android, .NET, Java, Qt/QML und OS X zu. Demzufolge setzt sich zum Beispiel das ArcGIS Runtime SDK for Android aus der Android API, dem Runtime Core und einer zugehörigen Dokumentation zusammen.

Neu hinzugekommen ist eine C++-Schnittstelle und eine Binärschnittstelle (ABI) zwischen den plattformspezifischen APIs und dem Runtime Core. In der vorigen Version greifen die APIs direkt auf die Core-Bibliotheken zu und haben dementsprechend einen mehr oder weniger großen Programmieranteil (Interop) nur für die reine Kommunikation. Durch die neuen Schnittstellen wurde dieser Anteil gravierend verringert, auch mit dem Vorteil, dass neue Funktionen schneller und zeitgleich in alle SDKs implementiert werden können und die Fehleranfälligkeit minimiert wird.

Weiterhin wurden alle plattformspezifischen APIs vollständig überarbeitet. Dies war in erster Linie notwendig, um die 3D-Funktionalität zu realisieren und den geänderten Zugriff auf den Runtime Core zu implementieren. Zusätzlich wurden alle APIs weitestgehend vereinheitlicht (z.B. gleiche Klassen- und Methodennamen), die Fehlerbehandlung wurde vereinfacht und es wurde ein Loadable Pattern für die Steuerung und Kontrolle über das asynchrone Laden von Daten implementiert.

Mit ArcGIS Runtime v100 wurde in einigen SDKs auch die Fähigkeit für die Cross-Plattform-Entwicklung erweitert. So können nun .NET-Entwickler mit dem ArcGIS Runtime SDK for .NET mithilfe der Xamarin-Technologie zusätzlich noch Cross-Plattform-Apps für Android und iOS erstellen. Und das ArcGIS Runtime SDK for Java hat mit OS X eine weitere Zielplattform hinzubekommen.

Neues Deployment License Model

Ab ArcGIS Runtime v100 gilt ein neues Lizenzmodell für das Deployment von Apps, das nun aus den vier Lizenzstufen Lite, Basic, Standard und Advanced besteht. Es ist gestaffelt nach Funktionalität und unterscheidet nicht mehr zwischen online und offline. Die Stufe Lite ist kostenfrei, mit ihr lassen sich schon Viewer Apps mit Maps, Geokodierung und Routenberechnung erstellen. Ab Stufe Basic können Entwickler Apps mit Datenerfassung realisieren.

Die Stufen Standard und Advanced richten sich an Entwickler von Experten-GIS-Anwendungen. Damit können viele weitere Datenformate und Analysemöglichkeiten genutzt werden. Für diese beiden Stufen ist zusätzlich die Analysis Extension verfügbar, die den Network Analyst, Spatial Analyst und den 3D Analyst in sich vereint.

ArcGIS Runtime Apps können mit einem Named User (derzeit nur Lite und Basic) oder einer Deployment License lizenziert werden.

Migration von ArcGIS Runtime Version 10.2.x auf Version 100

Durch die weitreichenden Änderungen der Architektur und APIs ist eine einfache Migration von 10.2.x auf Version 100 nicht möglich. Die Apps müssen neu geschrieben werden. Weiterhin fehlen ArcGIS Runtime Version 100 noch Funktionen der Vorversion. Diese Lücke wird mit den nächsten Releases geschlossen.

Fazit

Mit ArcGIS Runtime v100 ist eine neue Ära angebrochen. Es legt einen wichtigen Grundstein für alle zukünftigen Anforderungen mit dem Ziel, mit nativen Apps Web GIS zu unterstützen und die vollständige ArcGIS Funktionalität nutzen zu können. Für ArcGIS Engine Entwickler wird ArcGIS Runtime nun eine wichtige Option zur Erstellung von GIS-Anwendungen mit moderner Technologie. Esri Inc. bringt es dabei auf den Punkt: Building a platform for app developers for the future!