GeoExt Mobile (GXM)
GeoExt Mobile, oder kurz GXM, ist ein an GeoExt angelehntes Framework, mit dem mobile WebGIS-Anwendungen für Smartphones und Tablets (iPhone, iPad, Android-Geräte) entwickelt werden können.
Hierbei basiert GXM auf zwei wesentlichen Bibliotheken:
- Sencha Touch (“the first HTML5 mobile web app framework”) kann verwendet werden, um Web Applikationen zu entwickeln, die ein natives Look-and-Feel auf sehr vielen Geräten bieten. In vielerlei Hinsicht kann Sencha Touch als mobiles Gegenstück zu Ext JS angesehen werden.
- OpenLayers (“free maps for the web”) ist wohlbekannt für die Vielzahl an unterstützten integrierbaren GeodatenFormaten / Kartenypen und für die vereinheitlichte Interaktion mit jenen. OpenLayers unterstützt hierbei seit der Version 2.11 auch explizit mobile Geräte. So werden beispielsweise Touch-Events (auf Handys gibt es in der Regel keine Maus und keine Click-Events) korrekt interpretiert und in angemessene Aktionen umgesetzt.
GXM möchte die Stärken der Basisbibliotheken kombinieren und soll Grundlagen-Komponenten bereitstellen, die sofort verwendet werden können, um auf mobile Endgeräte optimierte WebGIS-Anwendungen zu erstellen.
Die folgenden Hauptkomponenten bilden den Kern von GXM:
- Eine MapPanel-Klasse, die jede Instanz einer OpenLayers-Map (welche ihrerseits alle Layertypen von OpenLayers unterstützt) in ein Sencha Touch Panel integriert;
Dieses Panel kann problemlos in alle von Sencha Touch bereitgestellten Layouts integriert werden. Standardmäßig nimmt hierbei die Karte den größtmöglichen Bereich ein, um Interaktionen mit der Karte zu vereinfachen. Auf Rotationen (Ausrichtungsänderungen) des Gerätes wird mit Neudimensionierung korrekt reagiert. - Eine LayerList-Klasse, die die Interaktion mit verschiedenen thematischen Kartenlayern der Applikation vereinfacht;
Auch diese Liste von Themen (welche intuitiv vom Benutzer gescrollt und bedient wird) kann natürlich in jedem von Sencha Touch bereitgestellten Container (also z.B. ein Popup, ein Tab-Panel, usw.) dargestellt werden. - Eine Button-Klasse, die die Interaktion mit OpenLayers-Controls (im einfachsten Fall z.B. zum Hineinzoomen in die Karte) vereinfacht;
Die Klasse kann z.B. dazu verwendet werden, die aktuelle geographische Position des Gerätes zu bestimmen, indem auf die Geolocation API (Teil von HTML5) zugegriffen wird. Auch das Verfolgen (eine Zustimmung des Nutzers vorausgesetzt) der Änderungen an der Position im Raum ist hiermit möglich und der Entwickler kann flexibel hierauf reagieren (etwa die Karte permanent rezentrieren oder thematische Layer je nach Position ein- bzw. ausblenden). - Weitere Features bzw. Klassen sind zur Zeit in der Entwicklung und werden demnächst in den Kern der Bibliothek einfließen.
Die Funktionalität dieser und der weiteren Klassen wird durch derzeit ca. 130 automatisierte Unit-Tests gewährleistet. Während der Entwicklung von GXM durch terrestris wurde der Quellcode mehrmals von einigen Entwicklern und von Entwicklern unserer Partnerfirma OpenGeo – alle Kernentwickler bei OpenLayers und GeoExt – auf Qualität hin geprüft. Da GXM auf Sencha Touch aufsetzt, werden die gleichen Geräte / Browser unterstützt wie in der Muttersoftware. Im Einzelnen sind dies die Standard-Browser des iOS-Betriebssystems (etwa auf iPhone, iPad und iPod) und der Standardbrowser, welcher mit Android ausgeliefert wird. Daneben ist GXM auf Blackberry-Geräten funktional und sollte auch auf anderen WebKit-basierten Browsern (wie etwa Google Chrome/Chromium und Apple Safari) problemlos eingesetzt werden können. GXM ist OpenSource unter der BSD-Lizenz und als Schwesterprojekt von GeoExt unter dem Dach der OSGeo-Foundation beheimatet. Der Quelltext ist frei verfügbar bei github: https://github.com/GeoExt/GXM. Wir freuen uns jederzeit über externe Partizipation am Projekt: Jedwedes Feedback (sei es via Email oder als Pull-Request) ist uns immer willkommen.
Wir haben GXM bereits erfolgreich in mehreren Kundenprojekten eingesetzt:
- mobile.map.geo.admin.ch
- Laufendes Projekt mit landplan.ch – Büro für Landschaftsgestaltung
- Regiofreizeit mobile
- BergIS mobile – die mobile Applikation des Geoportal BergIS des Bundesministeriums für Wirtschaft, Familie und Jugend, Österreich
- Laufendes Projekt zur Entwicklung von zwei mobilen Applikationen für die Landesvermessung und Geobasisinformation Brandenburg (LGB)


