GeoExt Mobile (GXM)
In principle GXM is based on two libraries:
- Sencha Touch (“the first HTML5 mobile web app framework”) can be used to develop web apps that provide a native look-and-feel on many devices. In many ways Sencha Touch can be viewed as the mobile counterpart to ExtJS.
- OpenLayers (“free maps for the web”) is well known for the many supported geodata formats / map types and for the uniform interaction with each of these. Since version 2.11 OpenLayers also explicitly supports mobile devices. This means for example that touch-events (normally on smartphones and other such devices there is no mouse or are there any click-events) are interpreted correctly and transferred into appropriate actions.
GXM wants to combine the strengths of the base libraries and wants to provide base-components that can be used immediately to develop WebGIS applications that are optimised for mobile devices.
The following main components are at the core of GXM:
- A MapPanel-class, which integrates any instance of an OpenLayers-Map (which in turn supports all layertypes supported by OpenLayers) into a Sencha Touch Panel. This panel can easily be integrated into any layout provided by Sencha Touch. As a standard the map assumes the largest space available to enable easy interaction with the map. Rotating the device will result in a new calculation of the best map dimension.
- A LayerList-class, which provides easy interaction with different thematic map layers. This list of themes, which can be easily and intuitively scrolled and handled by the user, can also be integrated into any container (i.e. Popup, Tab-Panel) provided by Sencha Touch.
- A Button-class which provides interaction with the OpenLayers-Controls (a simple example is zooming into the map). The class can also be used for example to determine the current geographic position of the device by accessing the geolocation API (a part of HTML5). Also the tracking of changed positions is possible with this, provided the user has given his or her approval. The developer can react in a flexible way by for example permanently centering the map on the position or activating/deactivating layers depending on the location.
- More features or rather classes are under development and will be integrated into the library in the future.
The functionality of these classes is currently being guaranteed by approximately 130 automated unit-tests. During the development of GXM by terrestris the source code was frequently quality checked by our own developers and developers from our partner OpenGeo – all of them core developers of OpenLayers and GeoExt. Since GXM uses Sencha Touch the same devices / browsers as in the mother software are supported. These are the standard browsers of the iOS operating system (iPhone, iPad and iPod) and the standard browser which is shipped with Android. GXM also works on Blackberry devices and should also work without problems with other WebKit-based browsers like Google Chrome/Chromium and Apple Safari. GXM is OpenSource and available under the BSD-license. As a sister project of GeoExt it also resides under the roof of the OSGeo-Foundation. The source-code is freely available at github: https://github.com/GeoExt/GXM We look forward to external participation in the project: Any feedback, via e-mail or as a pull-request, is welcome.
We have already used GXM successfully in numerous customer projects::
- Current project with landplan.ch – Office for Landscape Design
- Regiofreizeit mobile
- BergIS mobile – the mobile application of Geoportal BergIS from the Austrian Federal Ministry of Economy, Family and Youth
- Current project developing two mobile applications for the Agency “State Survey and Geospatial Reference Information Brandenburg” (LGB)