Batty consumerization of geospatial
- 2. OVERVIEW
• Brief background on our customers
• Consumerization
• Simplicity
• Field applications, online and offline
- 3. Figure 11: Conduits in an Underground Photo by whalt - http://flic.kr/p/7D7rd
Underground utility boxes are the structures that provide access conduits, examples of underground utility boxes include manholes, configurations of underground utility boxes can be created seen below and to its right the butterfly diagram managed 19.
Customers: utilities
and telcos
Photo by ☺ Lee J Haywood - http://flic.kr/p/7iX7f5
- 5. Trench route for new
cable
Figure 20: Inserting new cable
Structures which new
cable will be placed in
Select conduit for new
Single button press
inserts new cable
cable
Ordnance Survey Crown copyright. All rights reserved.
- 6. fields such as installed date, etc. These fields may be used ‘as is’, configured to hold specific information or
additional fields may be added using the standard tools available to system administrators.
Figure 42: Rack mounted equipment
Port
Shelf
Card
Mounting position
detail
- 8. Location is now
flic.kr/p/7rnNAD
flic.kr/p/7NEJzF
Pervasive and Simple
in consumer applications
- 10. “Consumerization of geospatial technologies will boost
business-side expectations and inspire new utility
applications,” !
!
“Shifting market dynamics will challenge incumbent
utility GIS vendors' ability to satisfy business
expectations, prompting utility CIOs to evaluate new
GIS capabilities."!
From Gartner report “Consumerized Geography Will Change Your Utility GIS Strategy”,
November 2012 http://www.gartner.com/id=2260419 !
- 12. We are building applications for
the 95% of people in an organization who are not GIS users
- 14. TOPICS
• Familiarity
• Panning and zooming
• Search (including queries)
• Minimal layers
• Focused applications
• Network links
• Rather than “trace”
- 16. GENERAL REQUIREMENTS
Leverage modern tablets
and smart phones (and
support laptops too)!
!
Leverage wireless
networks, but run offline
too!
!
Common development
environment across
platforms
- 17. APPLICATION OVERVIEW
This presentation features screen shots that step through a demo of Ubisense
myWorld for damage assessment. The demo features two separate users:
Operations center user, with overview of
situation, including data from all field users
Damage assessor with laptop in the field,
capturing damage assessment data
- 19. Damage Assessor in Field
WiFi is on
Currently online
(wireless)
Damage assessment user in the field, currently in
online mode (with wireless connection)
- 20. Damage Assessor in Field
Damage assessoCr crreeaatetse d admaagme aasgseess mpeonti npotint in
the field
- 21. Damage Assessor in Field
Damage point is created in local database and
displayed on map on laptop
- 23. Damage Assessor in Field
Offline
WiFi is off
Back in the field, we are now in offline mode (wireless
connection is lost). Google Map has disappeared here.
- 24. Damage Assessor in Field
Now we are displaying OpenStreetMap as an offline map
instead of Google (which can’t be used offline)
- 25. Damage Assessor in Field
In offline mode, we can continue to display maps, select
objects, and search for assets
- 26. Damage Assessor in Field
We can also continue to create damage points while in
offline mode (which are stored locally)
- 29. Damage Assessor in Field
Online
WiFi is on
Now the field laptop has a network connection again and is
back online, so the damage data can sync
- 30. Operations Center
The data has synced and so we now see three damage
points back in the operations center.
- 32. Field users can also use tablets like iPad or Android, which
support taking photos.
- 34. Operations Center
Operations Center also gets immediate visibility of photo (assuming user online)
Photos can also be emailed in from any smart phone
- 35. OFFLINE REQUIREMENTS
• (Ideally) cross platform
• Android, iOS, Windows 7 and 8 (and web)
• Need ability to sync large datasets (gigabytes) for some
situations
• In other situations may be able to use smaller datasets (for
single job, like walking an electrical circuit)
- 36. DATABASE SYNC
• Sync of bulk GIS data
• Initially read only for short term applications
• Typically want to do nightly over non-cellular connection
• Time critical data like damage assessment
•Want to sync as soon as possible (two way)
• Needs to connect / disconnect / sync transparently
- 38. ARCHITECTURE 1
LAPTOP REPLICA
PostGIS
Mapfish
Windows (or Linux or Mac) only
!
Use identical software stack to main
server
!
Need custom replication - haven’t
found PostgreSQL replication for
sometimes disconnected model
!
Pros: Simplest to implement
Cons: Laptop only, heavyweight
- 39. REPLICA CONCEPT
Master database
Local database
Full or partial
(spatial) replica
Potentially multiple
gigabytes
(raster tiles)
Incremental update
is important
- 40. ARCHITECTURE 2
PHONEGAP REPLICA
• Have our web application running offline
on Android and iOS
• Replaced PostGIS with SQLite - for geometry and attributes,
and also tiles
•Wrote JavaScript wrappers to replace (basic) MapFish services
offline
• Refactored code so small number of classes contain differences
between online and offline - tile and database access
- 42. CAUTION WITH IOS
• Apple terms and conditions regarding approval and software
distribution can be a major pain
• All code, and all changes, need to be reviewed by Apple - even
for testing (this has tightened up recently, since they bought
TestFlight)
• If you need custom apps for individual customers there is a
separate Enterprise Developer Program or Volume Purchase
Program, which each have their own complications
- 43. ARCHITECTURE 3
HTML5 OFFLINE
• Cache smaller amounts of data using
HTML5 offline capabilities
• More dynamic and easier to deploy
than bulk replication
- 45. HTML5 OFFLINE CONCEPTS
• Cache manifest files (Appcache)
• Lists files cached offline
• Useful tool is manifestR
• Offline storage
• Various types
- 51. CACHING TILES (1)
• Caching individual tiles using app cache
•Works reasonably for smallish areas, like an electric circuit - 1-2
minutes download. 800 tiles to level 18 for sample circuit
• App cache is all or nothing - any failure means whole cache doesn’t
load
• No ability to manage / delete caches programmatically
• Can also cache individual tiles using local storage and programmatic
download - more code but more control
- 52. CACHING TILES (2)
• As in other situations, copying individual tiles is very slow
• Not practical for larger downloads
•We have done some experimentation downloading mbTiles files and
reading them in JavaScript using sql.js
•Worked pretty well in Chrome on laptop or high end Android, for file
of 275Mb - had to overcome some memory issues / flakiness
• Didn’t work on iOS, hit 50Mb size limit (even on Chrome)
- 53. CACHING ATTRIBUTE DATA
•We have tried using geoJSON tiles and implemented select
against those - worked fine, should scale to large areas
• Also tried just downloading a single geoJSON file for the
whole area, works fine for smaller download areas
• Could consider using local storage database also
- 56. EXTERNAL STORAGE
Maps on a USB stick
Easy to provide full set of maps
Some functions unavailable offline
AirStash
Provides WiFi access to SD card -
usable with more devices
- 57. OFFLINE SUMMARY
• It will be great when we have universal wireless coverage!
• Today, offline is still harder than you would hope
• Large scale robust sync for enterprises is not rocket science,
but a lot of detailed work to do well
• HTML5 caching has a lot of promise, is workable in some
scenarios today, but still not quite fully baked
• Alternative options like Field Papers or external storage may
make sense in some cases
- 59. ?
Peter Batty!
@pmbatty!
peter.batty@ubisense.net!
about.me/peter.batty