Building Applications with ArcGIS Runtime SDK for ios - Part I. Divesh Goyal Mark Dostal

Similar documents
Introduction to ArcGIS API for ios. Divesh Goyal Eric Ito

Esri Developer Summit in Europe ArcGIS Runtime for ios

Getting Started with ArcGIS Runtime SDK for ios. Nick Furness / Al Pascual

Building Apps with the ArcGIS Runtime SDK for ios

Getting Started with ArcGIS Runtime SDK for ios and OS X. Divesh Goyal & Mary Harvey

An introduction to ArcGIS Runtime

Developing mapping applications with ArcGIS Runtime SDK for ios. Divesh Goyal Eric Ito

Developing ios & Mac apps with ArcGIS Runtime SDK. Suganya Baskaran, Divesh Goyal

ArcGIS Runtime SDK for WPF

An Introduction to GIS for developers

Getting Started with the ArcGIS Runtime SDKs. Dave, Will, Euan

ArcGIS Runtime SDK for Java: A Beginner s Guide. Mark Baird JC Malott

ArcGIS Runtime SDK for ios and macos: Building Apps. Suganya Baskaran, Gagandeep Singh

Building Applications with the ArcGIS Runtime SDK for WPF

Esri Developer Summit in Europe Building Applications with ArcGIS Runtime SDK for Java

ArcGIS Runtime SDK for.net Getting Started. Jo Fraley

Getting Started with ArcGIS Runtime SDK for Java SE

Developing Qt Apps with the Runtime SDK

ArcGIS Runtime SDK for.net Building Apps. Antti Kajanus David Cardella

ArcGIS for Mobile An Introduction. Bonnie Stayer

Getting Started with the ArcGIS Mobile APIs. Kris Bezdecny, David Martinez Andy Gup, David Cardella

Creating Web Mapping Applications. Nikki Golding

A Developers Guide To Mobile GIS. David Cardella, Jeff Shaner

Building WPF Apps with the new ArcGIS Runtime SDK for.net. Antti Kajanus Mike Branscomb

Getting Started with ArcGIS Runtime. Jeff Shaner David Cardella

Getting Started with the Smartphone and Tablet ArcGIS Runtime SDKs. David Martinez, Kris Bezdecny, Andy Gup, David Cardella

ArcGIS Online. The Road Ahead Geoff Mortson

ArcGIS Runtime SDK for Qt: Building Apps. Koushik Hajra and Lucas Danzinger

Author. Publish. Use

ArcGIS Runtime SDK for.net Building Apps. Rex Hansen

Getting Started with ArcGIS for Server. Charmel Menzel and Ken Gorton

Getting Started with ArcGIS Runtime SDK for Qt. Thomas Dunn & Nandini Rao

ArcGIS Runtime SDKs: Building a Routing Application. Frank Kish Konstantin Kutsner

Open File Explorer Start Pro with SanFran project Open Locator in SanFran project Open Browser and AGOL with RouteExample Web map.

Building Java Apps with ArcGIS Runtime SDK

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

What s New for Developers in ArcGIS Maura Daffern October 16

Using Collector for ArcGIS and Operations Dashboard for ArcGIS. Mike Sweeney Esri-Charlotte

ArcGIS SDK for Windows Phone and ArcGIS for SharePoint. Jo Fraley Nikki Golding

Building Applications with ArcGIS Runtime SDK for Android Part II. Will Crick Dan O Neill

Deploying ios Apps. Al Pascual

Interactive webmaps with ArcGIS. Kristel Meikas, AlphaGIS

Best Practices for Designing Effective Map Services

Web GIS: Principles and Applications. Pinde Fu, Ph.D. Project Lead / Senior Developer Professional Services Division

Web Mapping Applications with ArcGIS. Bernie Szukalski Derek Law

ArcGIS for Developers: An Introduction. Moey Min Ken

ArcGIS for Mobile Devices: An Overview. Jeff Shaner Bonnie Stayer

Introduction to ArcGIS API for Flex. Bjorn Svensson Lloyd Heberlie

Developing Mobile Apps with the ArcGIS Runtime SDK for.net

Getting Started with ArcGIS Runtime SDK for the Microsoft.NET Framework. Morten Nielsen Mike Branscomb Antti Kajanus Rex Hansen

ArcGIS Apps: An Overview

ArcGIS Runtime SDKs Building Offline Apps. Nick Furness

What s New in ArcGIS Server 10

Using ArcGIS for Server. Javier Abadía, Esri España Peter McDaid, Esri UK

Working with the ArcGIS Viewer for Flex Application Builder

Working with Feature Layers. Russell Brennan Gary MacDougall

Hit the Ground Running. ArcGIS Runtime SDK for Android

ArcGIS Runtime SDK for Java: Building Apps. Tyler Schiewe

EUCOM/AFRICOM DEFENSE USER GROUP MEETING MARCH 2010 STUTTGART WELCOME!

Advanced tips & tricks for building powerful ios/mac apps Divesh Goyal Mark Dostal

Tom Brenneman. Good morning and welcome, introductions and thank you for being here.

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe

Developing Cross-Platform Native Apps with AppStudio for ArcGIS. Jo Fraley Erwin Soekianto

Building Android Apps Runtime SDK for Android

Desktop. ArcGIS Server. ArcGIS

ArcGIS Runtime: Working with Maps Online and Offline. Will Crick Justin Colville [Euan Cameron]

Best Development Practices and Patterns Using ArcGIS Runtime SDK for Android. Xueming Wu Puneet Prakash

Survey123 Deep Dive. Presented by: Sue Enyedy-Goldner Fall 2018

ArcGIS App Strategies Ben

Providing Interoperability Using the Open GeoServices REST Specification

ICIT. Brian Hiller ESRI Account Manger. What s new in ArcGIS 10

Web AppBuilder Presented by

ArcGIS Runtime: Styling Maps. Ralf Gottschalk, Daniel Lee, Lucas Danzinger

Getting Started ArcGIS Runtime SDK for Android. Andy

Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy

ArcGIS GeoEvent Server: Making 3D Scenes Come Alive with Real-Time Data

ArcGIS Runtime SDK for.net: Building Xamarin Apps. Rich Zwaap Thad Tilton

Mobile Apps 2010 iphone and Android

ArcGIS Viewer for Flex An Introduction

An Overview of FMW MapViewer

Esri Maps for SharePoint

ArcGIS Viewer for Microsoft Silverlight An Introduction

CS193p Spring 2010 Wednesday, March 31, 2010

Web App Builder: Code-free Development. Adam Ziegler, Esri-Northeast, Local Government Team

Desktop Mapping: Creating Vector Tiles. Craig Williams

ios Application Development Course Details

Extending ArcGIS for Server. Jon Satchwell, Esri Switzerland Cédric Despierre Corporon, Esri France

Bringing your Data to Life in the ArcGIS API for JavaScript: Vector Tiles. Craig Williams &

No Programming Required Create web apps rapidly with Web AppBuilder for ArcGIS

Migrating your WPF Apps to the New ArcGIS Runtime SDK for.net. Mike Branscomb Antti Kajanus

ArcGIS Enterprise: Architecture & Deployment. Anthony Myers

Collector for ArcGIS Preparing for and Working in a disconnected environment

ArcGIS Runtime SDK for Android: Building Apps. Shelly Gill

ArcServer Flex API on an Android Device

ArcGIS Online: Managing Data. Jeremy Bartley Sentha Sivabalan

ArcGIS API for JavaScript Advanced Topics

ArcPad An Introduction

Sharing Web Layers and Services in the ArcGIS Platform. Melanie Summers and Ty Fitzpatrick

Getting Started with the ArcGIS Server JavaScript API

Mobile Computing Meets Research Data

Transcription:

Building Applications with ArcGIS Runtime SDK for ios - Part I Divesh Goyal Mark Dostal

Agenda The ArcGIS System Using the Runtime SDK for ios - Display Maps - Perform Analysis - Visualize Results Q&A Help make this session better, remember to turn in your surveys.

ArcGIS

ArcGIS - A Complete Geographic Information System Use Serve Author ArcGIS Server ArcGIS Desktop... For Authoring, Serving & Using Geographic Knowledge

ArcGIS for Web & Mobile Web APIs Flex JavaScript Silverlight REST Runtime SDKs ArcGIS Server

Native Applications and Runtime SDKs Configurable COTS applications and Native ArcGIS Runtime SDKs ios Android Windows Phone Windows Mobile Windows Linux Applications Applications Applications Applications Applications Applications ArcGIS ArcGIS ArcGIS ArcGIS ArcGIS Explorer* None Runtime SDK Runtime SDK Runtime SDK Runtime SDK Runtime SDK Runtime SDK Objective C Java Silverlight.NET WPF, Java Qt, Java

ArcGIS Runtime SDK for ios Formerly known as ArcGIS API for ios

ArcGIS Runtime SDK for ios Build native applications using Objective-C - iphone 3GS / 4 / 4S, ipod Touch, ipad 1 / 2 - Must be running ios 4 or higher

Web or Native applications? ESRI supports both Advantages of native applications - Tighter integration with other native apps - Access to resources - Contacts, calendar events, photos - Marketing/Hosting/Reporting via AppStore Disadvantages - Dedicated effort to write and maintain

Before you can begin.. You need an Intel-based Mac running OSX 10.6 (Snow Leopard) or 10.7 (Lion) Join ios Developer Program - Standard : AppStore distribution - Enterprise : In-House distribution Download ios SDK (4.2.x) & Xcode IDE (4.x)

Before you can begin.. ArcGIS Runtime SDK for ios - v2.2 : Download from the Resource Center Conceptual Help API Reference Developer Samples Deployment User Forum

Developing Applications

What you can do with the API Display maps Perform analysis Visualize results Collect data Access Online content - Using ArcGIS Portal REST API - New at v2.2

Built using the SDK

DEMO

Displaying a Map UI Component AGSMapView - Responds to gestures - Displays device location, heading, and bearing - Wrap-around dateline

Displaying a Map Add AGSMapView to the UI using Interface Builder Or, programmatically through code

Adding Content to AGSMapView Mashup basemap & operational layers - ArcGIS Server, WMS - Bing, Open Street Map - Graphics - Local Tile Packages //create the layer AGSLocalTiledLayer* mylayer = [AGSLocalTiledLayer localtiledlayerwithname:@"wildlifehabitat"]; //add to map [self.mapview addmaplayer:mylayer withname:@ MyLayer1"];

Adding Content to AGSMapView Open web maps - ArcGIS.com - Portal for ArcGIS //create the web map AGSWebMap* webmap = [AGSWebMap webmap withitemid:@"e229d715f7ca4fa980308549fb288165" credential:nil]; //open into mapview [webmap openintomapview:self.mapview];

Respond to events through Delegates Map Delegates Layer Events - Map loaded, failed to load - Layer loaded, failed to load Touch Events - Tap, Tap and Hold - Move Tap and Hold Callout Events - Did Show Callout, Should Show Callout - Did Click Accessory Button

Responding to Map Touch events 1. Adopt the Delegate protocol @interface MyController: UIViewController <AGSMapViewTouchDelegate> { } 2. Implement the protocol methods @implementation MyController - (void) mapview:(agsmapview*) mapview didclickatpoint:(cgpoint) screen mappoint:(agspoint*) mappoint graphics:(nsdictionary*) graphics { //handle touch event } 3. Set Delegate self.mapview.touchdelegate = self;

DEMO Displaying a map

Performing Analysis Using Tasks Query, Find, Identify Task - Search for features In the map Geoprocessing Task - Spatial analysis using GP tools and models Locator - Geocode and reverse geocode addresses

Performing Analysis Using Tasks (Contd.) Geometry Engine - native, high performance engine for performing geometric operations on the device Network Analysis - Point-to-point and multipoint routes - Service Areas based on drive times - Closest facility for an incident

Common Pattern for using Tasks 1. Adopt the Task Delegate protocol @interface MyController: UIViewController <AGSLocatorDelegate> { } 2. Implement the protocol methods - (void)locator:(agslocator*)locator operation:(nsoperation*)op didfindlocationsforaddress:(nsarray*)candidates { //todo } - (void)locator:(agslocator*)locator operation:(nsoperation*)op didfaillocationsforaddress:(nserror*)error { //todo }

Common Pattern for using Tasks 3. Instantiate the task self.locator = [AGSLocator locatorwithurl:[nsurl URLWithString:kGeoLocatorURL]]; 4. Set Delegate self.locator.delegate = self; 5. Perform operation NSOperation* op = [self.locator locationsforaddress:addresses returnfields:outfields];

Visualizing Results Graphics Layer - Collection of Graphics Graphic = Geometry + Symbol Polyline Line Point Polygon Marker Picture Fill Text Composite

Visualizing Results Contd. Graphic can optionally contain - Attributes - Information about the graphic - Info Template - Which attributes to display in a Callout

Visualizing Results Contd. //create the symbol AGSPictureMarkerSymbol *marker = [AGSPictureMarkerSymbol picturemarkersymbolwithimagenamed:@"bluepushpin.png"]; //create the graphic AGSGraphic *graphic = [AGSGraphic graphicwithgeometry:point symbol:marker attributes:dictionary //add the graphic to the graphics layer [self.graphicslayer addgraphic:graphic];

Visualizing Results Contd. Callout - Displayed when user taps on a graphic Content - Title & Detail - Image - Accessory button - Custom UI View

Specifying Content for the Callout 1. Adopt the Delegate Protocol @interface MyController: UIViewController <AGSInfoTemplateDelegate> { } 2. Implement the protocol methods @implementation MyController - (NSString *) titleforgraphic:(agsgraphic*)graphic screenpoint:(cgpoint)screen mappoint:(agspoint*)map { //todo } - (NSString *) detailforgraphic:(agsgraphic*)graphic screenpoint:(cgpoint)screen mappoint:(agspoint*)map { //todo } 3. Set the delegate on the graphic AGSGraphic *graphic =... graphic.infotemplatedelegate = self;

Responding to the Callout s Accessory button 1. Adopt the Delegate Protocol @interface MyController: UIViewController <AGSMapViewCalloutDelegate> { } 2. Implement the protocol methods @implementation MyController - (void) mapview:(agsmapview*) mapview didclickcalloutaccessorybuttonforgraphic:(agsgraphic*) graphic { //todo } 3. Set the delegate self.mapview.calloutdelegate = self;

DEMO Using Tasks and Visualizing Results

Related Sessions Building Applications with ArcGIS Runtime SDK for ios Part II - Today, 1 PM, Here

More Resources ArcGIS Resource Center - http://resources.arcgis.com - Conceptual help, API Reference - Samples, Blog, Forums Web Courses - http://training.esri.com - Getting Started with the ArcGIS API for ios - Creating Data Collection Applications using ArcGIS API for ios Apple ios Dev Center - http://developer.apple.com

Q&A Thank You Please fill out the surveys