developing online / offline mapping applications using adobe air and arcgis server api for flex -...
DESCRIPTION
TRANSCRIPT
2012 ESRI Developer Summit:
Developing Online / Offline Mapping Applications using Adobe AIR and ArcGIS Server API for Flex.
Blue [email protected]/blog
Brendan Collins@brendancol bcdcspatial.blogspot.com
Offline
Online Desktop
Mobile
• Which features to support…
• How to capture remote dependencies…
• How to store dependencies locally...
• How to extend application code function offline…
OFFLINE CONSIDERATIONS
• Any asset which is not accessible locally on the user’s machine and is required for an application feature.
REMOTE DEPENDENCIES
CAPTURING DEPENDENCIES
• Map Tiles• Geometry /
Attributes • Non-geographic
assets
• Monitor traffic using HTTP Proxy
(e.g. Charles, Firebug)
• Is the dependence dynamically generated or already sitting on disk?
IDENTIFYINGREMOTE DEPENDENCIES
CAPTURING DEPENDENCIES
How do I store / retrieve these assets locally?
General Strategy
– Keep track of asset urls
– Keep storage simple…
– No normalization of response data
STORING DEPENDENCIES
Local File System
– AIR File API
– Easy to implement
– Problematic as number of assets increase
– Idea: Name files the MD5 of their URL
STORING DEPENDENCIES
SQLite
– Scales better than File System
– Power of SQL for attribute queries
– Simple Data Model
– IDEA: Store AMF directly as Base64 Encoded Text
STORING DEPENDENCIES
Tile Packages (10.1)
– No need to “roll our own” tile storage strategy
– Creation from within ArcGIS Desktop
– IDEA: Check out TPKLayer for Flex API (Thank You Mansour!)
STORING DEPENDENCIES
ArcGIS Server API for Python…?
• Batteries Included!
• Simple Wrapper for AGS REST-API
• Django Management Commands
• Django O.R.M. for SQLite
Python / Django
Am I Connected ?(using URLMonitor)
Accessing Data in SQLite
ASYNC CONNECTION EXAMPLE
SYNC CONNECTION EXAMPLE
Retro-fit Tiled Map Service
Layer
EXTENDING TILED MAP SERVICE LAYER
EXTENDING TILED MAP SERVICE LAYER
EXTENDING TILED MAP SERVICE LAYER
EXTENDING TILED MAP SERVICE LAYER
AIR Deployment Options
• AIR Captive Runtime (Desktop)–Windows (.exe)–Mac (.dmg)–No need to install AIR Runtime separately
• Provide an AIR Installer (.air)–Cross platform installer–Encapsulates data–Requires separate AIR runtime installation
• Compile for Mobile–iOS (.ipa): App Store or register devices for limited-distribution
–Android (.apk):Google Play (Android Market) or distribute yourself.
Thank You!visit blueraster.com/blog for additional information
Blue [email protected]/blog
Brendan Collins@brendancol bcdcspatial.blogspot.com