arcgis runtime: migrating from arcgis engine
TRANSCRIPT
Mike Branscomb
ArcGIS Runtime:Migrating from ArcGIS Engine
ArcGIS Runtime session tracks at DevSummit 2019
• ArcGIS Runtime SDKs share a common core, architecture and design• Functional sessions promote common capabilities and workflows
• Product sessions promote specific development experiences• Demo theaters highlight specific technical capabilities
Shared workflows, any platform, any device
ArcGIS Runtime
WinLinux macOSAndroid iOS UWP
x86 x64 ARM ARM64
- Authenticating your applications- Working with maps online and offline- Working with ArcGIS Enterprise and Portal- Building 3D applications- Road ahead- Everything you wanted to know... Q&A- Migrating from Engine
- An Introduction to the API and Architecture- Styling maps- Building AR and VR Experiences- Getting to know Arcade- Configuring Webmaps- Analysis- Preparing your data for offline use- Editing your data online and offline
Overview – ArcGIS RuntimeAn Architecture Designed to Maximize Performance and Reuse
C++ runtime core
WinLinux macOSAndroid iOS UWP
x86 x64 ARM ARM64DirectXOpenGLOpenGL ES
Migrating to ArcGIS Runtime• ArcGIS Runtime API: new and evolved workflows on all platforms
Shared workflows, any platform, any device
Windows Linux Android iOS macOS
ArcGIS Runtime
ArcGIS Engine
Windows Linux
Migrating to ArcGIS Runtime• ArcGIS Runtime API: new and evolved workflows on all platforms• Local Server: additional support and extensibility on Windows and Linux
Shared workflows, any platform, any device
Windows Linux Android iOS macOS
ArcGIS Runtime
ArcGIS Runtime
Local Server
ArcGIS Engine
Windows Linux
Migrating to ArcGIS Runtime• ArcGIS Runtime API: new and evolved workflows on all platforms
Shared workflows, any platform, any device
Windows Linux Android iOS macOS
ArcGIS Runtime
ArcGIS Engine
Windows Linux
Migrating to ArcGIS Runtime
ArcGIS Runtime
Analysis
3D
Routing & Geocoding
Editing
Maps & Data
Windows Linux Android iOS macOS
Migrating to ArcGIS Runtime
ArcGIS Runtime
Analysis
3D
Routing & Geocoding
Editing
Maps & Data
Windows Linux Android iOS macOS
Maps: Migrating from ArcGIS Engine
• ArcGIS 8.x / 9.x / 10.x• Documents
- ArcMap document .mxd- Map Package .mpk- Layer file .lyr- Layer package .lpk
Maps: Migrating to ArcGIS Runtime
• ArcMap .mxd• Map Package .mpk
• Online Maps• Mobile Maps
Online Maps
https://developers.arcgis.com/rest/
• Maps from Portals• Read/write in Online, Pro, and Runtime• Webmap spec• Online layers & embedded content
- Feature Collection- Feature Layer- Map Image Layer- Tiled Layer- Vector Tiled Layer
Mobile Maps
http://esriurl.com/CreateOfflineMap
• Maps from ArcGIS Online and Pro• Mobile Map Package .mmpk• Based on web map spec• .mmpk Includes layers and data
- Feature layers and tables- Raster datasets- Tile layer (as a .tpk)- Vector tile layer (as a .vtpk)
• From ArcGIS Pro can include locators and networks
- Geocoding and routing offline
Data: Migrating from ArcGIS Engine
• ArcGIS 8.x / 9.x / 10.x• Data
- Geodatabases (personal, file, and ArcSDE)- Shapefiles- Raster datasets- ArcGIS Server map services, image services- ArcIMS map services, feature services- OGC WMS, WCS- TIN- CAD
Data: Migrating from ArcGIS Engine• Shapefile• Personal Geodatabase• File Geodatabase• ArcSDE• Raster• KML• Tile package• Feature Service• Map Service• Image Service• ArcIMS services• WMS, WMTS
• Shapefile• Mobile Geodatabase• Raster• KML• Tile package• Vector tile package• Feature Service• Map Service• Image Service• WMS, WMTS• WFS (v100.5)
Data: Migrating to ArcGIS Runtime• Mobile Geodatabase (.geodatabase)• Based on SQLite
- Cross-platform, portable, efficient • Contains schema, data, and rendering information• ArcGIS Online – on-demand / pre-planned workflow
- Mobile map packages reference sync-enabled feature services
• Feature Service – .geodatabase file - Sync-enabled
• ArcGIS Pro – Mobile Map Package .mmpk- Read-only
http://esriurl.com/CreateOfflineMap
Data: Migrating to ArcGIS Runtime• ArcGIS Runtime supports direct read of many raster formats• Raster renderers applied by the API
- Blend, Colormap, Hillshade, RGB, and Stretch
• Apply functions on the fly- Subset of Image Server raster functions - Mask, Clip, Pansharpen, Raster Calculator…
• Mosaic Datasets- Store, manage, view, and query collections of raster data as a catalog- Data model implemented in geodatabase- Visualize as a single mosaicked image- Create in ArcGIS Pro using GP tool- Create ArcGIS Runtime API via API
Data: Migrating to ArcGIS Runtime
http://server.arcgis.com/en/server/latest/publish-services/windows/author-feature-services.htm
• Feature Service• ArcGIS Enterprise and ArcGIS Online• Display, query, and edit data • ArcGIS Runtime API accesses via calls to REST API• Create mobile geodatabases
- Synchronize features, records, attachments
Data: Migrating to ArcGIS Runtime
• Map and Image services• Map services
- Dynamically renders map images- Preconfigured layers, renderers- Override via DynamicLayer
• Image services- Dynamically access raster imagery- Apply rendering rules
Migrating to ArcGIS Runtime• ArcGIS Runtime API: new and evolved workflows on all platforms• Local Server: additional support and extensibility on Windows and Linux
Shared workflows, any platform, any device
Windows Linux Android iOS macOS
ArcGIS Runtime
ArcGIS Runtime
Local Server
ArcGIS Engine
Windows Linux
Maps and Data: Migrating to ArcGIS Runtime
• Map Document .mxd• Map Package .mpk• Layer file .lyr• Layer package .lpk• File Geodatabase
- Feature class- Raster dataset- Raster mosaic
• Local Geoprocessing Service• Local Map Service
Local Geoprocessing
Service
Local Server
Maps: Migrating to ArcGIS Runtime• Local Server enables support for desktop file formats
- Maps / projects, map packages, layer files, layer packages
• Available on Windows and Linux desktops- ArcGIS Runtime SDKs: .NET, Java, and Qt
• Read map packages with local map services- ArcMap (.mpk) and Pro (.mpkx)
• Read and manipulate content via local geoprocessing services- Geoprocessing packages .gpk / .gpkx
• Create with Model Builder or Python
ArcGIS Runtime API
Windows Linux
Migrating to ArcGIS Runtime
ArcGIS Runtime
Analysis
3D
Routing & Geocoding
Editing
Maps & Data
Windows Linux Android iOS macOS
Editing: Migrating from ArcGIS Engine• ArcGIS Engine editing workflow mirrors ArcMap• Editable data formats
- Personal, File, ArcSDE geodatabases, and Shapefiles
• Editable content- Simple features / feature classes
- Point, Polyline, Polygon, Multipoint- Complex features
- Geometric networks, Topologies- Geodatabase schemas
• Workflow- Set target vector dataset (IFeatureLayer)- Edit features in an edit session via edit operations- Use geodatabase replication for offline editing
Editing: Migrating to ArcGIS Runtime
• Personal geodatabase• File geodatabase• ArcSDE geodatabases• Shapefiles
• Feature services• Mobile Map Package• Mobile geodatabase• Feature Collection• Shapefile
Editing: Migrating to ArcGIS Runtime
• Feature service- ArcGIS Enterprise and Online feature services
• Mobile map package- Mobile map packages with sync-enabled mobile geodatabases- Created from feature service with the OfflineMapSyncTask
• Mobile Geodatabase- Sync-enabled mobile geodatabases- Created from feature service with the GeodatabaseSyncTask
• Static feature collection editing- Feature collections (map and item based)
• Edit features, attributes, and attachments- Cannot edit topologies, utility networks, transportation networks
Editable data formats
Editing: Migrating to ArcGIS Runtime
• Create or get a Feature from the Table• Modify feature geometry, attributes, attachments• Apply feature edits to table instance via async Add, Update, Delete operations• If editing an online service feature table
- Call ApplyEdits to push edits up to service
• If editing a geodatabase table from an offline sync-enabled geodatabase - Use GeodatabaseSyncTask to sync with service
• If editing a static Feature Collection Table - Saved the map or portal item
Workflow
Migrating to ArcGIS Runtime
ArcGIS Runtime
Analysis
3D
Routing & Geocoding
Editing
Maps & Data
Windows Linux Android iOS macOS
3D: Migrating from ArcGIS Engine
• ArcGIS 8.x / 9.x / 10.x• ArcGlobe document .3dd• ArcScene document .sxd• Multipatch feature classes• GlobeControl
- Caching and cache management
• SceneControl- ‘Local’ scenes
3D: Migrating to ArcGIS Runtime• Document formats:
- WebScene- Mobile Scene Package (v100.5)
• Scene Service Layers- Published using ArcGIS Pro- ArcGIS Online and ArcGIS Enterprise
• Scene Layer Packages .slpk- Created using ArcGIS Pro- Use offline
• Elevation services and local raster datasets• Exploratory analysis
- Fast visual analysis - Viewshed, Line of Sight, Location Distance Measurement
Migrating to ArcGIS Runtime
ArcGIS Runtime
Analysis
3D
Routing & Geocoding
Editing
Maps & Data
Windows Linux Android iOS macOS
Analysis: Migrating from ArcGIS Engine• ArcGIS 8.x / 9.x / 10.x• Topological relationships
- Geometric objects: point, polyline, polygon…- Geometry objects implemented interfaces
- IProximityOperator: nearest, distance…- IRelationalOperator: contains, crosses…- ITopologicalOperator: boundary, buffer...
• Analysis of layers, processing of data- Geoprocessing
• Extensions- NetworkAnalyst- SpatialAnalyst- 3DAnalyst
Analysis: Migrating to ArcGIS Runtime• Geometry Engine (for topological relationships)
- Methods operate on individual geometries- Very efficient synchronous operations
• Geoprocessing (analysis of layers, data processing)- ArcGIS Enterprise
- Publish your own services- Local geoprocessing service using LocalServer
- Create geoprocessing package using ArcMap (.gpk) or ArcGIS Pro (.gpkx)
• Visualization- Interactive analysis (3D only): Viewshed, line of sight, distance measurement- Renderers
Migrating to ArcGIS Runtime
ArcGIS Runtime
Analysis
3D
Routing & Geocoding
Editing
Maps & Data
Windows Linux Android iOS macOS
Routing & Geocoding: Migrating from ArcGIS Engine
• ArcGIS 8.x / 9.x / 10.x• Routing performed on ArcGIS Network Datasets
- Requires Network Analyst extension- Execute via ArcObjects- Execute via geoprocessing tools - Use ArcGIS Server network analyst services- Solvers
- Route, Closest Facility, Service Area, Origin-Destination Cost Matrix, Vehicle Routing Problem (VRP) Solver, Location-Allocation Solver
• Geocoding performed on ArcGIS Locators- Execute via ArcObjects- Execute via geoprocessing tools
Routing & Geocoding: Migrating to ArcGIS Runtime• Routing
- ArcGIS Network Datasets- Specific optimized Network Analysis types and associated API ‘Task’ types
- Route, Service Area, Closest Facility- Service and local dataset
- Published as services (NAServer endpoint)- Packaged into Mobile Map Packages .mmpk with ArcGIS Pro - Other network analysis types available as Geoprocessing services
• Geocoding- ArcGIS Locators- Published as services (GeocodeServer endpoint)- Packaged into Mobile Map Packages .mmpk with ArcGIS Pro
Developer Resources
ArcGIS for Developers - developers.arcgis.com
• Your starting point for finding ArcGIS Runtime SDK resources- Sign up to receive credits for developing and testing your apps!
• Downloads- ArcGIS Runtime SDKs for all platforms
• Documentation- Developers guide, API reference, Samples documentation
• Samples- Focused samples to illustrate API functionality- Full example apps
• Tutorials- DevLabs: Data, Design, and Develop
• Toolkit
Start here!
Documentation
• Developers guide – developers.arcgis.com/documentation/- Conceptual documentation with focused examples (snippets)
- High-level documentation that applies to all ArcGIS Runtime SDKs- .NET-specific documentation
• API reference – developers.arcgis.com/net/latest/wpf/api-reference/- Documentation for each class and member in the API
• Sample documentation – developers.arcgis.com/net/latest/wpf/sample-code/- Brief description and screenshot of the sample- Relevant code (text)
Sample code
• Sample viewer projects github.com/esri/arcgis-runtime-samples-dotnet- Contains all source code for 150+ samples on all platforms- Small examples of focused API functionality
• Demos - github.com/Esri/arcgis-runtime-demos-dotnet- Larger samples that illustrate some common workflows- Portal item browser, turn-by-turn routing, external GPS
• Example apps - developers.arcgis.com/example-apps/- Focused functional apps: offline map viewer, data collection- All source code (github.com/esri/)- Well documented and configurable
Tutorials and support
• DevLabs – developers.arcgis.com/labs/- Short focused tutorials- Most will take 15 minutes or less to complete- Guides you through all aspects of creating a custom map app
- Data – Import data, create a new dataset, share your content- Design – Style a web map, configure pop-ups- Develop – Search and geocode, display a map, access private layers
- Includes solution code (or data)
• GeoNet – ArcGIS Runtime SDK for .NET community.esri.com/community/developers/native-app-developers/arcgis-runtime-sdk-for-net/- Public forum for questions, discussion, blogs, etc.
Additional controls and utilities (toolkit)
• Toolkit project – github.com/Esri/arcgis-toolkit-dotnet- UI controls to provide additional functionality- Includes all source code and samples- Available as a NuGet package
- Compass- Layer legend- Scale line- Symbol display- Time slider- and more …
Open source example apps
https://developers.arcgis.com/example-apps/
• Learn from Esri developers- Production quality apps built by Esri developers and released open source for you to use
• Don’t start from scratch- Released under Apache 2.0 license so you can make them your own
• Receive the support you need- Built and maintained by the Open Source Example Apps team
• Help the community- Fix issues, submit PRs, and contribute to the community
Roadmap
Update 5 (100.5) – April 2019• Mobile scene packages • GroupLayer• 3D Layers: Point Cloud, Point scene, and Integrated Mesh• Subsurface navigation• KML Tour & Refresh overrides• WFS• Next generation raster tile packages (.tpkx) and locators (.loz)• Enhanced symbology support and API for greater parity with ArcGIS Pro• Reference scale for text and symbols • Annotation layers
Complete answersand select “Submit”
Scroll down to find the feedback section
Select the session you attended
Download the Esri Events app and find your event
Please Take Our Survey on the App