arcgis runtime sdks: building android apps€¦ · content and presentation are separated arcgismap...
TRANSCRIPT
ArcGIS Runtime SDKS: Building Android Apps
Rama Chintapalli
Xueming Wu
Agenda
➢ Introduction
➢ Functional Overview of SDK
➢ Key SDK Components
➢ What’s Latest/Coming
Building ArcGIS Android Apps
ArcGIS Navigator ArcGIS Collector ArcGIS Explorer
Getting Started with SDKSetup Guide
➢ Sign up for free ArcGIS Developers account
○ 50 credits a month, premium content,
○ register apps
https://developers.arcgis.com/sign-up
➢ Install Android Studio IDE
https://developer.android.com/studio
➢ Get Runtime Android SDK
○ Add dependencies in Gradle (or)
○ Download the SDK locally
https://developers.arcgis.com/android/latest/guide/install-and-set-up.htm
Gradle: Adding Runtime SDK Dependency
➢ Available from a maven repository hosted on Bintray
➢ Add maven repository to project build.gradle
repositories {
maven { url 'https://esri.bintray.com/arcgis' }
}
➢ Add SDK dependency in app module’s build.gradle
dependencies {implementation 'com.esri.arcgisruntime:arcgis-
android:100.5.0'
}
Build Your First Map AppAdd Mapview to Layout
app > res > layout >activity_main.xml
Build Your First Map AppSet Map to MapView
SDK Resources
➢ Developers site - http://developers.arcgis.com/android
○ Guide Doc
○ API Reference
○ Samples Details
➢ GitHub
○ Samples Code
http://github.com/Esri/arcgis-runtime-samples-android
➢ GeoNet Community
http://geonet.esri.com/community/developers/
SDK Resources ...
➢ Sample Viewer App
○ Available in Android Playstore○ https://play.google.com/store/apps/details?id=com.esri.sampleviewer&hl=en_US
➢ Dev Labs
○ Step by Step instructionshttps://developers.arcgis.com/labs/browse/?topic=any&product=Android
➢ Open Source Apps
○ https://developers.arcgis.com/example-apps/
Open Source Apps
Maps App Ecological Marine Unit Nearby Your App!
Your App Here!
Android CPU Architectures
➢ Supports ArmV7, x86 32 bit native libraries
➢ Support for 64 bit native libraries added in 100.5
○ Google Play Store deadline is Aug 2019
➢ ABI Filter
○ Filters the native lib
○ Reduces APK Size
➢ Multiple APK’s to PlayStore○ https://developer.android.com/studio/build/configure-apk-splits
And reducing APK size
Rama
Functional Overview - SDK
View Components
SceneViewMapView
GeoView
ArcGISMap ArcGISScene
GraphicsOverlay
Grid (MapView)
AttributionText
Callout
LocationDisplay
Magnifier
SketchEditor
Toolkit Components
Functional Overview of SDK
SceneViewMapView
GeoView
ArcGISMap ArcGISScene
ViewGroup
(android)
Functional Overview of SDK ...Model (Map/Scene) Components and their Source
FeatureLayer
ArcGISMap
ArcGISScene
Layers /
Tables
ArcGISTiledLayer
ArcGISVectorTiledLayer
ArcGISMapImageLayer
RasterLayer
WebTiledLayer
….
MobileMapPackage
(Local)
Webmap
(Service)
WebScene
(Service) WMSLayer
WMTSLayer
BingMapsLayer
ENCLayer
OpenSteetMapLayer
KMLLayer
ServiceFeatureTable
GeodatabaseFeatureTable
ShapefileFeatureTable
GeoPackageFeatureTable
ArcGISSceneLayer
PointCloudLayerArcGIS Pro/Desktop
ArcGIS Online ArcGIS Entreprise OGC/ Third Party
WFSFeatureTableMobileScenePackage
(Local)
Tasks & Other Components
Functional Overview of SDK ...
Map
Scene
Layer
LocatorTas
k
(Geocode)
RouteTask
(Network Analysis)
GeodatabaseSyncTask
(Geodatabase)
OfflineMapTask
OfflineMapSyncTask
ExportTileCacheTask
ExportVectorTileCacheTask
GeoprocessingTask
Portal
Security
Geometry
Symbols
Rama & Xueming
Key SDK Components
https://github.com/Esri/maps-app-android
Demo
Maps App
Maps AppSDK Features
➢Map/MapView
➢Portal & Authentication - OAuth
➢Please search
○ Place suggestion
○ Geocoding
○ Reverse Geocoding
➢Routing
➢Graphic & GraphicsOverlay
➢Content and presentation are separated
➢ArcGISMap defines content
○ Composed of basemap and operational layers
○ Loadable
○ Listeners - DoneLoading, LoadStatusChanged, BasemapChanged
○ Can be persisted as a webmap
➢MapView renders map content
○ Extends GeoView (android.view.ViewGroup)
○ Control visible extent of map using Viewpoint
○ Control Magnifier, SketchEditor, ViewInset, WrapAoundMode
○ Listeners
■ DrawStatusChanged, LayerViewStateChanged, and etc
■ MapRotationChanged, MapScaleChanged
Map/MapView
➢AuthenticationManager
○ Manages user authentication for secured resources
○ Central place for
■ Setting an authentication challenge handler
■ Manage in-memory credential cache
■ Manage OAuth Configurations
■ Manage client/server certificates
➢DefaultAuthenticationChallengeHandler
○ UX for challenge
○ Credentials (http, token-based, client certificate)
○ Self-signed server certificate
Authentication
Authentication
AuthenticationManager.setAuthenticationChallengeHanderl(
new DefaultAuthenticationChallengeHandler(context));
Portal
➢A developer’s gateway to the portal information model
➢High-level, coarse-grained APIs to access, use, create, and share content
➢Key classes
○ Portal
○ PortalUser
○ PortalItem
○ PortalGroup
Geocoding
➢LocatorTask
○ Loadable
○ ListenableFuture
➢GeocodeParameters
➢GeocodeResult
○ List
■ DisplayLocation
■ Label
■ Score
■ Attributes
Routing
➢RouteTask
○ Loadable
○ ListenableFuture
➢RouteParameters
○ Get/Add stops
➢solveAsync
○ RouteResult - List
■ Routes
■ Messages
■ Barriers
Rama & Xueming
Offline
Offline PatternsServices Pattern
➢Services Pattern
○ On-Demand
■ User Controlled
○ Preplanned
■ Admin Controlled
Area 1
Area 2
Offline PatternsDesktop Pattern
➢Desktop Pattern
○ MobileMapPackages
■ Entire Map
○ RuntimeContent
■ Individual Layers
Demo
Offline
Demo
3D
3DSDK Features
➢Line of Sight GeoElement
➢Viewshed Location
➢Mobile Scene Package
➢Point Cloud Layer
➢Integrated Mesh Layer
What’s Latest
➢3D
○ MobileScenePackages
○ Subsurface Navigation
○ Point Cloud & Point Scene Layers
○ Performance Improvement
➢OfflineMaps
○ Referenced Basemaps
➢WFS
➢KML/ KML Tours
➢Annotation Layers
➢Next Gen Raster Tiled Packages (TPKX)
➢Next Gen Locators (LOZ)
➢Enhanced Symbology Model
What’s Coming
➢Toolkit for Android
○ compass
○ scalebar
➢AR
➢Utility Network
➢OfflineMaps
○ Scheduled Updates
Agenda
➢ Introduction
➢ Functional Overview of SDK
➢ Key SDK Components
➢ What’s Latest/Coming
Please Share Your Feedback in the App
Download the Esri
Events app and find
your event
Select the session
you attended
Scroll down to
“Survey”
Log in to access the
survey
Complete the survey
and select “Submit”
Q & A