ArcGIS Runtime SDKS: Building Android Apps€¦ · Content and presentation are separated ArcGISMap...

Preview:

Citation preview

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

https://developers.arcgis.com/android/

Demo

Introduction

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

Recommended