building offline apps with the arcgis runtime sdks cameron, colville and crick
TRANSCRIPT
![Page 1: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/1.jpg)
Building Offline Apps With the ArcGIS Runtime SDKs
Cameron, Colville and Crick
![Page 2: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/2.jpg)
Agenda
• Workflows and Data- Overview
- What can you build?
- Where does the data come from?
- Authoring and sharing content with Runtime Apps
• Using the APIs- Mapping
- Editing
- GeoCoding
- Networks
• Quartz release- Many new offline capabilities
![Page 3: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/3.jpg)
Offline Map CapabilitiesDisconnected Use of the ArcGIS Platform
• Viewing and Interacting with Maps
• Querying Data
• Editing Features- Synchronization
• Find places and locations
• Get directions
• Pre-planned or On-demand Workflows
• Occasionally Connected Scenarios
• All Runtime SDKs*
![Page 4: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/4.jpg)
The ArcGIS Platform – Working Offline
• All Aspects of the Platform Support Going Offline- Online and Portal
- Server
- Desktop
• New Workflows- Critical for You to Understand These Workflows
![Page 5: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/5.jpg)
From ArcGIS Online and Portal
Author Prepare
ViewQuery
AnalyzeEdit
Synchronize
Download
![Page 6: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/6.jpg)
Justin
Working With Hosted Services
Demo
![Page 7: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/7.jpg)
ArcGIS Online Data Licensing
• Always Review Data Usage Restrictions
• Supported Esri Services- Basemaps
• Esri Services Not Supported Offline- Geocoding
- Routing
![Page 8: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/8.jpg)
Offline With ArcGIS Server
AuthorMap
PublishService
ViewQuery
AnalyzeEdit
Synchronize
Download
ArcGISDesktop
![Page 9: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/9.jpg)
Offline With Desktop
Prepare Runtime Content
ViewQuery
AnalyzeGeocodeDirections
Provision
AuthorMap
ArcGISDesktop
![Page 10: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/10.jpg)
Justin
Working With ArcGIS Desktop
Demo
![Page 11: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/11.jpg)
Mixing and Matching
• Possible to Take a Hybrid Approach- Online basemaps
- ArcGIS Server feature services
- GeoCoding and routing from Desktop
• This Will Be Common in Your Solutions
![Page 12: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/12.jpg)
Optimizing The Data Provisioning Process
• Features and Basemap Content- On Demand – Retrieves data from the server when requested
- Uses server processing power and bandwidth for every client request
- Sideloading - Content created ahead of time and provisioned onto the device- Can help alleviate server load at busy times of the day
- Commonly used for basemap tiles
- Can work with feature data if the workflow is right
- How often and how many features change on the backend?
• Networks and Locators- Sideloading is the only option
![Page 13: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/13.jpg)
More Choices Coming with ArcGIS Pro 1.2
• Mobile Map Packages can be compressed and contain- Map
- Operational data
- Locators
- Networks
- Basemap
![Page 14: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/14.jpg)
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 15: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/15.jpg)
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 16: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/16.jpg)
Working With Operational Data OfflineIt is all about the features
• Read only access- Work with attachments and relates
- Use popups
• Edit Features- Edit attachments and related data
- Sync changes with a server
![Page 17: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/17.jpg)
Syncing With a Server
• Send/receive edits
• Per Layer Sync
• Per Geodatabase Sync
• Control Over Sync Direction- Download changes only
- Upload edits only
- Download changes and upload edits - bidirectional
![Page 18: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/18.jpg)
Generating a Geodatabase and Showing Features
GeodatabaseSyncTaskGeodatabase
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()
FeatureTable
add()update()delete()query() getFields()
![Page 19: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/19.jpg)
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
Call Sync
![Page 20: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/20.jpg)
Feature Layer
FeatureServiceTable
GeodatabaseFeatureTable
FeatureLayer
FeatureTable
RendererLayer Definition
Add/Update/DeleteQuery
AttachmentsTypes/TemplatesRelationshipsHas Local EditsGetGeodatabase
ApplyEdits
![Page 21: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/21.jpg)
Will
Offline Features
Demo
![Page 22: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/22.jpg)
Working With Locators Offline
• Prepared for Offline Use Using ArcGIS Desktop
• Programming Model Similar to Online Locators
• High Performance
![Page 23: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/23.jpg)
Locator psuedo code
task = new Locator(path);
//geocode
params.setText(“”);
task.findAddress(); //async
//reverse geocode
task.findLocation(point);
![Page 24: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/24.jpg)
Working With Networks Offline
• Prepared for Offline Use Using ArcGIS Desktop
• Programming Model Similar to Online Networks
• High Performance
![Page 25: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/25.jpg)
Routing psuedo code
task = new RouteTask(path);
params = task.retrieveDefaultRouteTaskParams();
params.setStops(NAFeatures);
task.solve(); //async
![Page 26: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/26.jpg)
Justin
Offline Networks andLocators
Demo
![Page 27: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/27.jpg)
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
• Large data over 3G- Check for wifi access before you submit your Tasks?
![Page 28: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/28.jpg)
Licensing Offline Capabilities
• Viewing maps downloaded from Online / Portal- Basic License
• Offline Feature Editing, Sync, Geocoding and Networks- Standard License
![Page 29: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/29.jpg)
ArcGIS Runtime Quartz ReleaseSignificant New Functionality for Offline Apps
• 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 30: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/30.jpg)
What does Quartz include?
• Working with maps offline- Full authoring support
• Working with layers offline- Support for Local Data and data taken offline
• Working with analysis offline
• Working with 3D content
![Page 31: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/31.jpg)
Justin and Will
Quartz Release
Demo
Vector Tiles
Vector Tiles
![Page 32: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/32.jpg)
Questions?
Don’t forget to fill out the session feedback!
![Page 33: Building Offline Apps With the ArcGIS Runtime SDKs Cameron, Colville and Crick](https://reader038.vdocuments.net/reader038/viewer/2022102801/56649e865503460f94b88848/html5/thumbnails/33.jpg)