An issue we often get questions about relates to offline GIS and mapping. How do we take our mobile device into an area which lacks WI-FI connectivity and still be able to access base maps and our layers? More than that how do we make edits to or update spatial features and sync these with a central server like ArcGIS? We have been pondering particularly this latter question for a while. Mansour Raad at ESRI, has been a huge help. We adapted some of his code and loaded both base map tiles and a shapefile on a smartphone. More than that we added the ability for users to tap a feature and, eureka, a pop up of the feature attributes appeared. I’ll admit we were jumping up and down in the office when we managed to get all working. Here is are two videos of the app.
But. After testing we did find one problem. The shapefiles loaded very very slowly! Hmmm ….!
Let me digress for a moment. We recently wrote a surprisingly popular blog post reviewing available mobile GIS apps. What did we find? Amongst other things a lack of cross platform apps. Too many are just built for the Apple iOS platform. Also most do not use a spatial server. They are pseudo GIS apps. Meaning they have some GIS functionality but are not driven by a GIS. To us unless ArcGIS or GeoServer are on the server side of the mobile app, call it a clever mapping app. Not GIS. But a number use shapefiles, both loading and rendering and generating. Nice functionality. But none, that we have found, allow feature editing, and centralised storage. The latter is key since collaboration will always be important. Others will want to see and use your updates.
Ok, with that out of the way. Let’s look at the question posed. How does a true GIS mobile app allow non WI-FI connected users to visualize, edit and update layers in ArcGIS? As the videos above shows, base maps tiles loaded onto a mobile device for offline use are no problem. But ArcGIS layers are rendered on the fly. Meaning when online, each zoom or pan requires redrawing of the layer by ArcGIS. How do we store this in offline mode? The obvious choice is a shapefile. So store this spatial layer entity on the device. Load it when required.
Mobile GIS – Querying and Editing Features in a Shapefile
This brings us back to the slow load. In the demo we are using Adobe AIR. The applications takes the geometries in the shapefile and physically draws them. Slow .. you betcha. There are other approaches. Fast layers (again thanks Mansour) in one. Here we can improve the speed of drawing.
Another is not drawing the geometry, but converting the shapefile to a bitmap. Adobe AIR handles bitmaps super fast. So multiple pictures are loaded on the screen. The pictures represent shapefiles. One more potential approach is to convert to svg.
But, click on a feature in, say, a bitmap, maybe a single county in a state, and you are clicking on a picture. How do you relate the point click to the feature? More than that if you want to edit the attributes of that feature, again how do we store this data?
Mobile GIS – Offline Changes Synced with ArcGIS
Lastly, and most importantly, if we want others to have access to these updates how do we upload this data to ArcGIS?
As mentioned we have had requests for this functionality. We feel this relative trickle of emails may become a flood in 2012. So finding a solutions to this conundrum is something we are giving particular attention.
This is part 1 of a two part post. Here we laid out the question. Next we will discuss possible solutions.