arcgis runtime sdks: building offline apps, part...

28
Building Offline Apps with the ArcGIS Runtime SDKs – Part 2 Will Crick, Justin Colville, Euan Cameron

Upload: hoangmien

Post on 02-Apr-2018

278 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Building Offline Apps with the ArcGIS Runtime SDKs – Part 2

Will Crick, Justin Colville, Euan Cameron

Page 2: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Agenda

• Part One – Workflows and Data- What can you build?- Where does the data come from?- Authoring and sharing content with Runtime Apps

• Part Two – Using the APIs- Mapping- Editing- GeoCoding- Networks- What’s changed since Beta- What’s coming

Page 3: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Runtime platforms

QT

OS X

Windows Store

JavaSE

iOS

Android

Windows Phone

Mobile

Desktop

Embedded

.NET

Windows Desktop

Page 4: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Working With Basemaps Offline

• ArcGIS Desktop Can Create Tile Caches• Esri Basemaps

- http://tiledbasemaps.arcgis.com/…- AGOL basemap group

• ArcGIS Server Tiled Map Services• Services Limit Extent

- Administrator Sets the Limit- Workable Size

- Compression quality- Estimations

• Consider Reusing Offline Basemaps

Page 5: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Psuedo/Code snippets

task = new ExportTileCacheTask(url);

params = new ExportTileCacheParams();params.setLevelsOfDetail( [1,2,3,4] );params.setAreaOfInterest( geometry );

task.estimateTileCacheSize( params); //async

task.exportTileCache( params, path ); //async

SubmitJobPoll for statusDownload when completeSome platforms handle partial downloads

Page 6: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Justin

Taking ArcGIS Online Basemaps Offline

Demo

Page 7: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Working With Operational Data OfflineIt is all about the features

• Read only access• Work with Attachments and Relates• Edit Features• Use Popups• Sync Changes with a Server

Page 8: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Syncing With a Server

• Send Edits• Versioned Data – download & upload – new at server 10.3! (in session I said

this was download only, sorry!)• Per Layer Sync – non versioned data• Per Geodatabase Sync – versioned data• Control Over Sync Direction

- None- Download changes only- Upload edits only- Download changes and upload edits - bidirectional

Page 9: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Generating a Geodatabase and Showing Features

GeodatabaseSyncTask

Geodatabase

GeodatabaseFeatureTable

GeodatabaseFeature

FeatureLayer

Layer

Graphic

Feature

fetchFeatureServiceInfo()new GenerateParams(fsInfo) - generateGeodatabase(params)

Geodatabase.getSyncParams() - syncGeodatabase()isSyncEnabled()

getFeatureTables()hasLocalEdits()

createNewFeature()queryRelated()getAttachments()getFields()

getFeatures(x,y)selectFeatures()get/setRenderer()hideFeature()

geometry()attributes()

FeatureTableadd()update()delete()query() getFields()

Page 10: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

How Does Sync Work?The Flow of Data

Generategeodatabase

enabled for sync

Feature servicewith sync enabled

Adds, edits, deletes Generate delta geodatabase

Upload delta

Retrieve response

Apply response to geodatabase

Page 11: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Feature Service Table

Page 12: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

SamplesOfflineEditor

Offline Features

Demo

Page 13: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Working With Locators Offline

• Prepared for Offline Use Using ArcGIS Desktop• Programming Model Similar to Online Locators• High Performance

Page 14: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Locator psuedo code

• task = new Locator(path);

• //geocode• params.setText(“”);• task.findAddress(); //async

• //reverse geocode• task.findLocation(point);

Page 15: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Justin

Offline Locators

Demo

Page 16: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Working With Networks Offline

• Prepared for Offline Use Using ArcGIS Desktop• Programming Model Similar to Online Networks• High Performance

Page 17: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Routing psuedo code

• task = new RouteTask(path);

• params = task.retrieveDefaultRouteTaskParams();• params.setStops(NAFeatures);

• task.solve(); //async

Page 18: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Justin

Offline Networks

Demo

Page 19: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

App development

• Killed/exited apps- Hold on to params (or with iOS jobid) and resubmit same job (with use cached

job=true)- If job still exists on the server, will not resubmit job- If partial download on disk, will not resubmit job- If error, will resubmit job

• Apparent sync failure due to network issues• Backgrounded iOS apps

- Go to iOS session!

• Large data over 3G- Check for wifi access for ExportTilecCacheTask??

Page 20: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Licensing Offline Capabilities

• Viewing Vector and Raster Data- Basic License

• Offline Feature Editing, Geocoding and Networks- Standard License

Page 21: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

What’s coming?

ArcGIS Runtime Quartz

Numbers were not working, so we picked something solid, sharp and shiny….

Page 22: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Quartz

• Major release- Many new capabilities- New and changed APIs- Improved internal architecture

• Goals- Support the ArcGIS Platform- Move ArcGIS Engine developers to the ArcGIS Runtime- Synchronize APIs across all ArcGIS Runtime platforms- Support specific user workflows

Page 23: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

What does Quartz include?

• Working with maps- New Map object central to the API- Create, edit and share maps across the ArcGIS Platform (Online, Portal, Pro)- Offline maps

- Take a map (and its layers) offline using a task- Author offline maps- Provision offline maps (from ArcGIS Pro and other Runtime Apps) with Mobile Map

Packages

• Working with Portals- Find, upload, share and configure- Authentication made easy

Page 24: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

New 3D, layer and analysis capabilities

• Working with scenes for 3D- Scenes work everywhere

• Working with layers- New layer types

- Raster layer, scene layer, KML layer- Feature layer support for local GIS data

- Mobile geodatabase (from ArcGIS Pro), geopackage, shapefile- Richer symbology

- New renderers - heatmap, dot density, scale dependent, dictionary- New symbology model - proportional size, color, transparency- Advanced symbology – from ArcGIS Pro

- Analysis- On the fly visual analysis – viewshed, line of sight- Raster layer with a Function Raster

Page 25: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

All this requires new and changed apis…

MapView Map

Layer*

FeatureLayer RasterLayer MapImageLayer KMLLayer

Page 26: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Quartz Beta begin

Today Q22015

ArcGIS Runtime Release Schedule

Q42015

Quartz Final release

Feb

10.2.5Qt /QML SDK

May

10.2.63D .Net SDK

Page 27: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Questions?

Page 28: ArcGIS Runtime SDKs: Building Offline Apps, Part IIproceedings.esri.com/library/userconf/devsummit15/papers/dev_int...the ArcGIS Runtime SDKs – Part 2. ... Android. Windows . Phone

Rate This Sessionwww.esri.com/RateMyDevSummitSession