Download presentation
Presentation is loading. Please wait.
Published byJohnathan Barber Modified over 7 years ago
1
ArcGIS Runtime SDK for Android An Introduction
Dan O’Neill @jdoneill @doneill Xueming Wu @xuemingrocks Esri Corporate Template-Dark v3.3 16:9 version – January 21, 2016 For more templates, sample files, and icons, see To add footer text in Windows On the Home tab, under Insert, click Text, and then click Header and Footer. Click the Slide tab, select the Footer check box, and then type the footer text that you want. Click either Apply or Apply to All. To add footer text on a Mac On the View menu, select Header and Footer. Select the Footer check box and then type the footer text that you want. If footers don't appear on the slides If footers don't appear on title slides, in the Header and Footer dialog box make sure the Don't show on title slide check box is not selected. If the footers are missing from other slides, the placeholders for these items might have been removed from specific slide layouts or the slide master.
2
Agenda Introduction to the ArcGIS Android SDK Maps & Layers
Basemaps (Portal) Location Place Search Routing Authentication Maps App Quartz
3
Intro to SDK ArcGIS Runtime SDK for Android
4
SDK Introduction - Features of the ArcGIS Android SDK
High performance Mapping and GIS capabilities Add and query content from your Organization Work offline with Basemaps and operational data Display maps in support spatial references Work with your device GPS Offline/Online routing Add graphics to maps Advanced geometric and spatial analysis operations
5
SDK Introduction - What you get
Rich mapping API for native Android app development multiple ways to get API Android Library module (AAR) from a public maven repository Preferred way to work with the SDK API Reference (Javadoc) & Guide documentation developers.arcgis.com/android Suite of samples GitHub samples User Forum GeoNet/GIS Stack Exchange Blogs Developer blogs for Android
6
SDK Intro - How to get the SDK
Android Studio Official IDE for Android development Based on IntelliJ IDEA Project & File Structure Android project view Gradle Android plugin for Gradle - Groovy Goodness Flexible build system - custom build logic Manage dependencies Runs independent of Android Studio
7
SDK Intro - How you get the SDK
Add repository URL Add ArcGIS Android dependency
8
DEMO Your first android app - Hello World
9
SDK Introduction - Samples
Open Source Samples Get an account (if you don’t already have one) Fork the repo Clone the repo locally Import project into Android Studio Run Sample
10
DEMO Fork/Clone the Samples
11
SDK Intro - What’s in the local SDK
SDK Download doc API Ref - Javadoc legal license info libs dependency jars and native libs local ArcGIS Android SDK Library Module AAR res localization files resources Military symbol dictionaries samples archive snapshot of samples from GitHub
12
SDK Intro - What’s exclusive in the local SDK
Localization resources Localization of Popups Advanced Symbology symbol dictionaries APP6B and MIL2525 C symbol dictionaries Beta Analysis libs Native libs to support offline Spatial Analysis
13
Maps & Layers
14
Maps & Layers – Layer Types
DynamicLayer FeatureLayer GraphicsLayer GroupLayer KmlLayer RasterLayer TiledLayer
15
Maps & Layers – Dynamic Layers
Abstract Base Class Sub-classes ArcGISDynamicMapServiceLayer ArcGISImageServiceLayer WMSLayer
16
Maps and Layers – TiledLayer
Abstract Base Class Direct sub-classes ArcGISLocalTiledLayer TiledServiceLayer Indirect sub-classes ArcGISTiledMapServiceLayer BingMapsLayer OpenStreetMapLayer WMTSLayer
17
Maps & Layers – Graphics Layer
Layer representing one or more Graphics Dynamically display Graphics on a MapView Graphics can be geometries or features MapView can contain one or more GraphicLayers
18
Basemaps Portal
19
Basemaps ArcGIS Online provides a living atlas of the world
Delivered as map service Freely available to anyone Include World Imagery World Street Map World Topographic Map Ocean Basemap and more
20
Basemaps - From Portal Portal
How to get them in your app Portal Provides the connection information to the portal PortalInfo Name, logo, featured items, etc PortalGroup Represents a group in a portal PortalItem Represents an item in a portal PortalQueryParams Creates query parameters for finding content PortalQueryResult Results of the queries performed on a portal
21
Location
22
Location - GPS Use the power of your device to show where you are
Knowing where you are allows apps to return smarter information back LocationDisplayManager provides the current location Device location on a Map Auto pan Listen to events pause resume
23
DEMO BASEMAP & Location
24
Place Search
25
Place Search - Geocoding
ArcGIS Online Geocoding service Global coverage Locator uses this in default constructor Find method allows for address and POI search LocatorFindParameters Set source Country Point and radius parameters Set Max returned location candidates Locator.find(LocatorFindParameters)
26
Place Search – search suggestions
LocationSuggestionParameters Results in radius are promoted Sorted by distance to point Results outside radius still returned Locator.suggest(LocationSuggestionParameters)
27
Place Search – Toolkit Simplification
ArcGIS Android Toolkit API Provides GeocodeHelper class Find location for a given address Simplifies the workflow No need to set parameters and get result from a Locator
28
DEMO Place Search
29
Routing
30
Routing API - Workflow • Create a Route Task
• Set up Route Task Parameters • Set stops • Calculate route • Get results • Display route on map • Get directions and display to user
31
DEMO Routing
32
Authentication
33
Authentication When do you need to authenticate
Access users private content Create and publish content Access premium content on ArcGIS Online Authentication modes Token-based HTTP/Windows PKI
34
OAuth Have you heard about OAuth? Authentication patterns User login
App login Allow ArcGIS Online users to authorize your application on their behalf Two steps process: authorization → authorization code exchange code for tokens → access token and refresh token
35
OAuth Create an OAuthView in code or from xml portal url client id
CallbackListener Get credentials from CallbackListener.onCallback Handle error in CallbackListener.onError() Customize the http authentication request dialog
36
Maps App
37
Maps App Material Navigation Drawer Search Widget
Floating Compass Button Fragments Routing Dialog Directions Dialog Basemaps Dialog
38
Maps App on GitHub https://github.com/Esri/maps-app-android
Get involved Report Issues Contribute Code Fork it Clone it Configure remotes Send pull requests
39
DEMO Maps App
40
Offline support Take a map offline View Edit Sync
Perform offline tasks Analysis (Beta) Routing/Geocoding Query
41
Quartz
42
Map Decoupled from MapView
Content and presentation are separated Map is now a separate class (model object) Declare in code only Defines the data displayed by the MapView Contains content - layers, basemap, bookmarks Open an existing map or build in code, modify, save MapView (view object) Has a map set on it Extends android.view.ViewGroup Control visible area of Map using Viewpoints GraphicsOverlay(s), LocationDisplay, …
43
Asynchronous methods 10.2.x had sync & async methods
Result execute(Parameters params) Future<Result> execute(Parameters params, CallbackListener<Result> callback) In Quartz it’s just one async method ListenableFuture<Result> execute(Parameters params) Advantages: Reduces API clutter Promotes asynchronous programming We think you prefer async methods (we take care of executing operations on background threads) Do you agree?
44
Because it vectors, it looks great on all devices Dynamic labeling
Vector Tile Layer Optimized data format Small in size Can be up to 1000 times smaller that Raster Tiles Update to data takes minutes instead of days Because it vectors, it looks great on all devices DPI of data not really an issue Dynamic labeling Clearer, more readable text - On the fly labeling for heads up display Ability to style Streets, Topographic, Canvas from one dataset Day and Night mode
45
Consolidates maps or basemaps into a single file (.mmpk)
Mobile Map Package Consolidates maps or basemaps into a single file (.mmpk) Use ArcGIS Pro 1.2 or later to create one Easy and fast to share Common uses Geocoding Navigation Can be used in Navigator for ArcGIS 2.0 Or any application built using ArcGIS Runtime (Quartz Beta 2)
46
New Security Pattern Default implementation of challenge handling
AuthenticationManager Set AuthenticationChallengeHandler Manage in-memory credential cache Set server and client certificate Manage a set of OAuthConfiguration Default implementation of challenge handling Token-based, HTTP/Windows, PKI Prompt for credentials or client certificates Trust self-signed certificate OAuth user login Greatly simplify authentication workflows AuthenticationManager.setAuthenticationChallengeHandler(new DefaultAuthenticationChallengeHandler(Context));
47
New Security Pattern No longer constructors taking Credential
Testing with credentials (Because you don’t hard code credentials into your apps right?) RemoteResource has setCredential() set before it is loaded
48
Quartz Demo
49
Agenda Introduction to the ArcGIS Android SDK Maps & Layers
Basemaps (Portal) Location Place Search Routing Authentication Maps App Quartz
50
Sessions to attend ArcGIS Runtime SDKs: Building Offline Apps
Related to Runtime and/or Android ArcGIS Runtime SDKs: Building Offline Apps Room 31 A Wed: 10:15AM - 11:30AM Designing a Great User Experience for Your ArcGIS Runtime Apps Demo Theater 3 Wed: 1:30PM - 2:15PM Optimizing your ArcGIS Runtime Apps for Performance Wed: 2:30PM - 3:15PM Integrating ArcGIS Runtime with Devices and Sensors Wed: 4:30PM - 5:15PM Road Ahead: ArcGIS Runtime SDKs Ballroom 06 E Thur: 3:15PM - 4:30PM
51
THANK YOU QUESTIONS
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.