Presentation is loading. Please wait.

Presentation is loading. Please wait.

ArcGIS Runtime SDK for Android An Introduction

Similar presentations


Presentation on theme: "ArcGIS Runtime SDK for Android An Introduction"— Presentation transcript:

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

52


Download ppt "ArcGIS Runtime SDK for Android An Introduction"

Similar presentations


Ads by Google