Hit the Ground Running ArcGIS Runtime SDK for Android
Presenters Dan O Neill - @jdoneill Xueming Wu
Introduction to the Android SDK Maps & Layers Analysis & Display Information Place Search Offline Patterns What s coming... Agenda
Android SDK Intro Dan O Neill
ArcGIS Runtime
Introduction to the Android SDK - Dependencies Java Development Kit (JDK) 7+ Android API 15 + Android Studio - Mac OS - run Android Studio with Java Runtime Environment (JRE) 6 - Configure project to use JDK 7+ Optional Manage SDK locally in Eclipse/NetBeans
Introduction to the Android SDK - Features SDK distributed through public maven repository - http://dl.bintray.com/esri/arcgis Direct support for Android Studio & Gradle project structure Samples Open Sourced through GitHub - https://github.com/esri/arcgis-runtime-samples-android Documentation available through developers site - http://developers.arcgis.com/android Support for using 10.2.5 in Eclipse and Android Studio https://github.com/esri/gradle-eclipse-studio-android
Introduction to the Android SDK - Gradle Dependency Define the repository in the project Root build.xml file Define the ArcGIS Android AAR in your app project build.xml file
Maps & Layers Dan O Neill
Maps & Layers - Layer Types DynamicLayer FeatureLayer GraphicsLayer GroupLayer KmlLayer RasterLayer TiledLayer
Maps & Layers - DynamicLayer Abstract Base Class Sub-classes - ArcGISDynamicServiceLayer - ArcGISImageServiceLayer - WMSLayer
Maps & Layers - TiledLayer Abstract Base Class Direct sub-classes - ArcGISLocalTiledLayer - TiledServiceLayer Indirect sub-classes - ArcGISTiledMapServiceLayer - BingMapsLayer - OpenStreetMapLayer - WMTSLayer
Maps & Layers - GraphicsLayer 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
Maps & Layers - Simplified Basemaps Switch Basemaps from MapOptions.MapType Supported types - Gray - Hybrid - National Geographic - Oceans - Open Street Map - Satellite - Streets - Topo
Maps & Layers - Simplified Basemaps Switch layers based on selection
Feature Analysis Xueming Wu
Why analyze Convert data into information Adds values - answers questions - more than just points on maps Services available in ArcGIS Online - Builds into your apps
Feature Analysis - query features Query features - Retrieve features from a single layer or table in a map service or a feature service - Query or Query Related Records operation - Performs attribute and spatial queries - Retrieves - only IDs - attributes - actual features
Query Features - QueryTask General workflows: - Create a QueryTask - Create a QueryParameters or RelatedQueryParameters that define the task - Execute the task - Retrieve the results - Handle any errors
Query Features - QueryTask QueryParameters or RelatedQueryParameters: - Attribute queries through setwhere() - Spatial queries through setgeometry() - Retrieve only IDs by setreturnidsonly() - Retrieve attributes or actual features by setreturngeometry() - Returned features in specific spatialreference by setoutspatialreference() - Limit the number of features by setmaxfeatures()
Query Features - QueryTask
Feature Analysis - identify features Identify features - Search features intersecting with a geometry from a layer in a map service - Retrieves - attributes - actual features
Query Features - IdentifyTask General workflows: - Create a IdentifyTask - Create a IdentifyParameters that define the task - Execute the task - Retrieve the results - Handle any errors
Feature Analysis - display information Callout - Simplified Callout Popup - Simplified Popup
Display Information - Popup Provides UI and behaviors for displaying and editing features Respects types/domains Supports adding attachments Supports editor tracking Has hooks - For editing geometries - For deleting geometries Works with developer defined as well as webmap popups Sample In SDK - PopupInWebmapForViewing - PopupInWebmapForEditing Requires Android support library to run!!!
Popup - general workflow Display information using pop-ups - Instantiate PopupContainer - Create a Popup and add it to the PopupContainer - Display PopupContainerView Handle user interaction Edit information using pop-ups Customize UI
Popup
Popup - simplification
Place Search Xueming Wu
Place Search - geocoding ArcGIS Geocoding service - Global coverage Locator uses this in default constructor Find method allows for address and POI search Point and radius parameters - Results in radius are promoted - Sorted by distance to point - Results outside radius still returned
Place Search - geocoding Locator.find()
Place Search - search suggestions Locator.suggestion()
Place Search - search suggestions
Place Search - simplification ArcGIS Android Toolkit API Provides GeocodeHelper class Find address for given location Simplifies the workflow - No need to set parameters and get result from a Locator
Place Search - demo https://github.com/esri/arcgis-runtime-samples-android/tree/master/placesearch
Offline Patterns Dan O Neill
Offline Patterns - Create Offline Maps
Offline Patterns - Workflows Take Map Offline View / Basemap Edit Sync Perform Offline Tasks Routing Geocoding Query Create Your Own Layer Define layer and symbology Persist it to device
Offline Patterns - Basemaps From a Tiled Service TPK or Compact Cache Service must support exporttiles operation Requesting a Tile Cache parameters Level Of Details (LOD) Level ID s supported Extent of the Tile Cache SpatialReference
Offline Patterns - Custom Layers Base Abstract Class TiledServiceLayer Used by Fetch Tiles ArcGISTiledMapServiceLayer BingMapsLayer OpenStreetMapLayer Implement abstract gettile() method
Offline Samples in the SDK Local Tile Layer Local MBTiles Local Raster Data Create Local Geodatabase Offline Editor Offline Analysis Export Tile Cache Offline Routing and Geocoding Standard License Offline
What s coming? ArcGIS Runtime Quartz Numbers were not working, so we picked something solid, sharp and
Quartz Major release - Many new capabilities - New and changed APIs - Improved internal architecture Goals - Support the ArcGIS Platform - Move ArcGIS Engine developers to the ArcGIS Runtime - Synchronize APIs across all ArcGIS Runtime platforms - Support specific user workflows
ArcGIS Runtime Release Schedule Today Q2 Beta Q4 2015 Quartz beta release Quartz final release
Introduction to the Android SDK Maps & Layers Analysis & Display Information Place Search Offline Patterns What s coming... Agenda
Thank You Please Rate our Session QUESTIONS
Devsummit Runtime sessions
ArcGIS Runtime SDK sessions Wednesday Session Name Time Location Building Great Android App Uis and UXs 4:00pm 5:00pm Mojave Learning Center ArcGIS Runtime SDK sessions Thursday Session Name Time Location ArcGIS Runtime SDKs: Building Offline Apps, Part I ArcGIS Runtime SDK: Building Offline Apps, Part II ArcGIS Runtime SDKs: Offline Routing and Geocoding ArcGIS Runtime SDKs: Implementing 3D Capabilities 9:00 10:00am Primrose A 10:30 11:30am Primrose A 4:00-5:00pm Smoketree A-E 5:30 6:30pm Primrose C/D Collector for ArcGIS: How we did it 5:30 6:30pm San Jacinto
ArcGIS Runtime SDK sessions Friday Session Name Time Location The Road Ahead: ArcGIS Runtime 8:30 9:30am Primrose A Everything (or Anything) You Wanted to Know about the ArcGIS Runtime SDKs but Were Afraid to Ask The Road Ahead: Web 3D and Native Mobile Apps 10:00 11:00am Primrose A 10:00 11:00am Primrose C/D