Case Study: Developing OpenLayers-based Mobile Applications

September 2014  FOSS4G 2014

Who are we?

Syrus Mesdaghi

Technical Lead

@garnertb

Tyler Garner

Web Developer and Geospatial Analyst

@syrusm

What will we cover?

 

  • Arbiter CrossPlatform
  • Arbiter-Android
  • Pushpin OSM CrossPlatform

Our Experience Developing:

This is Arbiter

an open source mobile application for collecting data in disconnected environments

This is PushPin (Android)

It's designed for contributing points of interest to OSM

Arbiter Developed Under ROGUE Project

 

  • Part of a set of capabilities known as GeoSHAPE
  • www.geoshape.org
  • github.com/ROGUE-JCTD/Arbiter-Android

 

  • Goal: streamline collaboration on geospatial data between distributed partners
  • Since 'partners' can include different government agencies, organizations, volunteer groups
    • GeoSHAPE has to be free and open source 
    • Easy to deploy
  • Each partner will have their own instance of GeoSHAPE
    • Can edit and synchronize with other instances
      • Funded/developed GeoGit (GeoGig) 
    • Fully operational in disconnected mode
  • Arbiter is GeoSHAPE's mobile client for data collection
  • View, Create, Edit Vector Data
  • Focuses on disconnected environments
  • We also have videos at https://www.youtube.com/watch?v=Ew_yBQ0nZEM

Arbiter Demo

Why Area of Interest?

  • When operating without network connectivity, we need to cache all the tiles and vector data in the area of interest
  • Network availability can be a problem
    • Remote areas
    • Networks are overwhelmed or damaged in disaster scenarios

Arbiter Demo

The WorkFlow

  • Create a project for a particular effort

  • Specify Area of Interest

  • Add layers from a server

  • Save project & cache 

Arbiter Demo

Synchronizing

  • Open a saved project, make edits, sync with laptop

  • Create new project from scratch

Arbiter Demo

  • OpenLayers 2

  • PhoneGap plugins

    • Geolocation, FileSystem, and FileTransfer, Cordova SQLitePlugin

  • JQuery Mobile For the Interface

Arbiter Cross Platform (old)

 

Built with

  • jQuery mobile & Cordova didn’t perform well together across platforms

  • Memory issues - after panning/zooming a certain distance, the app would crash

  • Web App issues

Problems

Arbiter Cross Platform (old)

 

  • OpenLayers 2

  • Native Android UI (Except few buttons on map)

  • PhoneGap plugins

    • Geolocation, FileSystem, and FileTransfer, Cordova SQLitePlugin

Arbiter Android

 

Built with

 

  • Memory issues - after panning/zooming a certain distance, the app would crash

  • Turned out to be webview bug fixed in 4.4.2

Problems

Arbiter Android

 

  • Provisioning is an issue
  • Caching should be improved
  • Symbology when disconnected
  • Switching between base layers more easily
  • Having to support multiple platforms is an issue

Wish List

Arbiter Android

 

  • OpenLayers 3

  • PhoneGap 

  • BootStrap
  • https://github.com/pushpin/PushpinAndroid

Built with

PushPin Cross Platform

  • Map is not as smooth as our web client 

  • Still feels like the web and not a native app

  • Try it yourself and compare with Spatial Networks' PushPin iOS app in the AppStore

Problems

PushPin Cross Platform

Questions?

Made with Slides.com