introduction toarcgis for developers, esri, charles van der put, jim barry

100
Charles van der Put, Jim Barry Introduction to ArcGIS for Developers Esri Developer Summit in Europe November 9, 2012 | Rotterdam

Upload: esri-nederland

Post on 27-Jan-2015

114 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Charles van der Put, Jim Barry

Introduction toArcGIS for Developers

Esri Developer Summit in EuropeNovember 9, 2012 | Rotterdam

Page 2: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Goals

• Cover all of ArcGIS, high pass, developer's angle

• What is there?

• What can I do with it?

• What resources are available to get the most from it all?

• Where is the community?

• How do I get started?

Page 3: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Who are you?

• Are you a GIS pro? - new to dev?

• Are you an experienced developer - new to ArcGIS?

• Are you a Project Lead?- what’s available?

Page 4: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Agenda

• ArcGIS as a developer's toolbox- Desktop applications

- ArcGIS Explorer Desktop, ArcGIS Desktop, ArcGIS Engine

- Geoprocessing

- Geodatabase

- Client-Server applications- ArcGIS Server

- ArcGIS Online

- Web APIs

- ArcGIS Runtime for Devices

• Developer Resources

Page 5: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

10.1• Online

• Desktop

• Server

• Mobile

Cloud

ServerMobile

Desktop

Web

Page 6: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Explorer Desktop

Page 7: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Explorer Desktop

Free to use, develop against, and deploy

For Developers

1. Application Configuration- Customize UI and functions, no code necessary

2. ArcGIS Explorer SDK- Create Add-ins with Visual Studio

• Portable files, easy to share

Page 8: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Explorer Desktop Application Configuration

Page 9: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Explorer Desktop SDK

Page 10: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Explorer Desktop Creating Add-Ins

Templates

Page 11: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

www.arcgis.com

upload, downloadshare, groups

tools, maps, apps

Page 12: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 13: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 14: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 15: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Desktop

Page 16: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Desktop

The professional GIS workstation

For Developers

1. Customization of UI and functionality

2. ArcObjects SDK- .NET, VC++

3. Add-ins- .NET, Java (Eclipse)

4. Script Tools- Python

Page 17: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Desktop Customizing

Page 18: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Desktop ArcObjects

Page 19: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 20: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Desktop Creating add-ins

• Create or share - *.esriAddin

• Copy into well-known location - local or network

• Install wizard

• Use

• Key advantages over classic ArcObjects dev pattern

Page 21: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Templates

ArcGIS Desktop Creating add-ins

Page 22: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Desktop Creating add-ins

Assemblies/JARs

.esriAddIn File(zipped folder)

.esriAddIn

XML Metadata Resources• Buttons• Tools• ComboBoxes• Multi-items• Menus• Content Menus• Toolbars• Tool Palettes• Dockable Windows• Application Extensions• Editor Extensions

Page 23: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Desktop Creating add-ins

Page 24: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Desktop Creating add-ins

Page 25: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Finding, Using Add-ins

• www.arcgis.com

Page 26: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Engine

Page 27: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Engine

Embeddable and Extensible GIS Components

For Developers

• ArcObjects SDK- .NET, Java, VC++, Cross-platform C++

- 1000s of classes, interfaces, methods

- 10+ controls

• Compiled and deployed stand-alone applications

Page 28: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 29: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Geoprocessing

Interrogating, manipulating, managing map data

For Developers

Interactive scripting window

Use Modelbuilder then export as a script

Portable files, easy to share

• .py, .gpk, .esriAddIn

Page 30: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 31: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Geodatabase

• Components

• ArcObjects

• File Geodatabase API

Page 32: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Geodatabase

• Components

Page 33: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Geodatabase

• ArcObjects

Page 34: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Geodatabase

• File Geodatabase API (v 1.2)

- C++

- .NET wrapper

- Mac

Page 35: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Agenda

• ArcGIS as a developer's toolbox- Desktop applications

- ArcGIS Explorer Desktop, ArcGIS Desktop, ArcGIS Engine

- Geoprocessing

- Geodatabase

- Client-Server applications- ArcGIS Server

- ArcGIS Online

- Web APIs

- ArcGIS Runtime for Devices

• Developer Resources

Page 36: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Server – An end-to-end GIS system

Developer architecture

Services

APIs

Demos

Page 37: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Server – Works with many different clients

Flex/Flash

Google Earth

ArcGIS Online

PHP

iPhone

Open Street Map

Android

Microsoft Silverlight

Windows Phone

Ruby

Python

.NetJava

OpenLayers

ArcGIS Runtime SDKs

ArcGISExplorer

JavaScript

ArcGISDesktop

ArcGIS Web APIsIncluding…

Page 38: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 43: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Server - Architecture

ClientAPIs

Web Services

GIS Services

Data

Map Services

Geoprocessor Services

Query Services

Filesystems

Geodatabases

REST

SOAP

OGC

Runtime SDKS

JavaScript

Flex

Silverlight

HTTP

Page 44: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

What is a GIS Service?

Edit

Use

Display

Map Service EndpointMap Service Endpoint

ArcGIS ServerMap Service

Page 45: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Server – GIS Services

Mapping

Feature

Geocode

Geoprocessing

Globe

Geodata

Geometry

Image

Network Analysis

Search

ArcGIS Server

OGC

KML

Page 46: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

How do I get my data into an app? Web Services!

REST

SOAP

OGC

*Image from Microsoft Clip Art

Page 47: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Example ArcGIS REST API Architecture

JSON, XML etcJSON, XML etc

Geodatabase

ArcGIS Desktop

lyr, msd, mxd, etc.lyr, msd, mxd, etc.

ArcGIS Server

ArcGIS Web API

Web Server

REST

Your App

Page 49: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS REST Services Directory

http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer

Page 50: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Online

• Viewer

• Templates

• ArcGIS Portal API

Page 51: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS.com Map Viewer

Page 52: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Configurable Templates

• ArcGIS.com Configurable Templates

• Create maps using online tools

• Download template to your web server

• Config files

• Modify code directly

Page 53: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Basic Template Configuration – index.html

function init() {

//get the localization strings i18n = dojo.i18n.getLocalization("esriTemplate", "template"); console.log(i18n); configOptions = { //The ID for the map from ArcGIS.com webmap: "dbd1c6d52f4e447f8c01d14a691a70fe",

Web Map ID

Page 54: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Portal API

http://www.arcgis.com/apidocs/rest/

Page 55: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 56: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

In the browser: ArcGIS Web APIs

JavaScript

Apache Flex

Microsoft Silverlight

JavaScript Compact(mobile)

Page 57: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Web API capabilities include……

Editing

FeatureLayersTime-awareness

Query

Geoprocessing

Graphics

GraphicsLayer

Routing

Map

Extents

Symbols

Geometries

Page 59: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Why use the Web APIs?

<div id="mapDiv" style="width:800px; height:600px; border:1px solid #000;"></div>

vs.

dojo.io.script.jsonp_dojoIoScript2._jsonpCallback({"serviceDescription":"","mapName":"Layers","description":"","copyrightText":"","layers":[{"id":0,"name":"arcgis2.DBO.custinfo","parentLayerId":-1,"defaultVisibility":true,"subLayerIds":null},{"id":1,"name":"arcgis2.DBO.DenverCO_CensusTracts","parentLayerId":-1,"defaultVisibility":true,"subLayerIds":null}],"tables":[],"spatialReference":{"wkid":4326},"singleFusedMapCache":false,"initialExtent":{"xmin":-105.170917848995,"ymin":39.5124265894988,"xmax":-104.556422044239,"ymax":40.0144928617289,"spatialReference":{"wkid":4326}},"fullExtent":{"xmin":-105.13659819355,"ymin":39.55113300385,"xmax":-104.57486577945,"ymax":39.9313831191501,"spatialReference":{"wkid":4326}},"units":"esriDecimalDegrees","supportedImageFormatTypes":"PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,AI,BMP","documentInfo":{"Title":"","Author":"","Comments":"","Subject":"","Category":"","Keywords":"","Credits":""},"capabilities":"Map,Query,Data"});

JSON

Page 60: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

API “Syntax”

queryTask.execute(query,queryTaskComplete,queryTaskError);

JavaScript (.js)

queryTask.ExecuteCompleted += QueryTask_ExecuteCompleted;

Silverlight (C#.NET)

queryTask.execute(query, new AsyncResponder(onResult, onFault));

Flex (ActionScript)

Page 61: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

API Patterns

var queryTask = new

esri.tasks.QueryTask(“http://someserver/arcgis/...”);

dojo.connect(queryTask, "onComplete", doSomething);

query = new esri.tasks.Query();

query.spatialRelationship = esri.tasks.Query.SPATIAL_REL_INTERSECTS;

queryTask.execute(query);

function doSomething(event){

};…

JavaScript (.js) Example

1

2

3

4

5

Page 62: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Demo of Web APIs

Page 63: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Framework for Integrating Multiple Services

Tiled Imagery Layer

Basemap

Tax Parcel Data

Operational Layer

Tax Parcel Boundaries

Operational Layer

ArcGIS Online

ArcGIS Server

Page 64: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Want an out-of-the-box web solution?

ArcGIS.com Web Map Viewer

ArcGIS Viewer for Flex (Source on Github)

ArcGIS Viewer for Flex Application Builder

ArcGIS API for Silverlight Toolkit (Source on Github)

ArcGIS API for Silverlight Template Gallery

Page 65: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Devices

• Intro- Trends

- Overview

• ArcGIS Runtime for Smartphones and Tablets- iOS

- Windows Phone

- Android

• ArcGIS Runtime for Desktop Devices- WPF

- Java

• Wrap up- Q and A

Page 66: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Apps and SDKs

Windows Mobile

Windows/ iOS Android

Runtime SDK

• .NET CF

Runtime SDKs

• WPF, Java

Linux

Runtime SDK

• Java

Runtime SDK

• Objective C

Runtime SDK

• Java

Windows Phone 7

Runtime SDK

• Silverlight

Apps

• .ArcGIS

Apps

• ArcGIS

• ArcGIS Explorer

Apps

• ArcGIS

Apps

• ArcGIS for iOS

Apps

• ArcGIS

Page 67: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 68: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Mobile Trends = Greater access to GIS

Source: The Nielson Company

Feature Phones

Smartphones

U.S. Smartphone Market Penetration

%

Page 69: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Runtime SDKsiOS, Android, Windows Phone

• Native developer toolkit

• Build focused mapping applications

• Embed ArcGIS in to existing apps

• Leverage the ArcGIS system

• Designed for touch-screen phones

• One handed use

XCode

Eclipse

Visual Studio

Page 70: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS API for iOS

Native Objective C/Cocoa API

REST–Based

Requires Mac

ArcGIS for iOS on iTunes

Page 73: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS on Rugged Devices

Windows and Windows Mobile Devices

• Designed for harsh field conditions• One handed/vehicle-mounted use• Occasionally connected workflows• High accuracy data collection- GPS integration- Laser integration• Replace Paper Surveys- Intelligent forms- Barcode integrationWater Facilities Mapping

Asset Maintenance/Inspection

First Responders

Land Management

Page 74: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Mobile SDK

.NET API (C#, VB.NET, WPF)

Windows Mobile (notebooks/tablets)

Pocket PC/.NET Compact Framework

Connected or Disconnected

Page 75: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcPad

.NET and XML based

Windows Mobile

High accuracy

Field data collection

Disconnected Use

Page 76: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Special considerations for mobile!

Various Screens

Touch-based workflows

Multiple form factorsBattery life

Inconsistent internet

Slower connections

Slower CPU

*Image from Microsoft Clip Art

Different OS Versions

Memory constraints

Page 77: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Apps and SDKs

Windows Mobile

Windows/ iOS Android

Runtime SDK

• .NET CF

Runtime SDKs

• WPF, Java

Linux

Runtime SDK

• Java

Runtime SDK

• Objective C

Runtime SDK

• Java

Windows Phone 7

Runtime SDK

• Silverlight

Apps

• .ArcGIS

Apps

• ArcGIS

• ArcGIS Explorer

Apps

• ArcGIS

Apps

• ArcGIS for iOS

Apps

• ArcGIS

Page 78: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Mobile Devices

iOS

Android

Win Phone

Win MobileDesktops

Windows

Linux

Mac OS*

ArcGIS Runtime SDKs

Page 79: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Runtime on Windows and Linux (…soon Mac)

New Developer Product

• Easy to Deploy

• Fast Display

• Small Footprint

• Native APIs

• Connx/Disconnx

• Async prog pattern

Runtime

Local Data

Server

Page 80: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ArcGIS Runtime

ArcGIS Engine

MapObjects

Simple Object Model

Accelerated Display

Simple Licensing Model

Geodatabase Read/Write

ArcGIS Server Services

Support Rasters

Utilize Geoprocessing

Support ArcMap CartographyLabelling, Annotations, Symbols & Styles

Custom ArcObjects (layers, render, data source)

Side by Side SDK and Deployment

Deploy just what you need

3D Display

Page 81: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Runtime Deployment Levels

• Basic- Full client to ArcGIS Server services

- Local Tile Packages

- GPS Support

• Standard- Local Map, Geoprocessing and Locator Packages

- Geodatabase Editing

- Routing

• Extensions- Spatial Analyst

- 3D Analyst (2D display and 3D analysis)

- Network Analyst

Page 82: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

resources.arcgis.com

Page 83: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 84: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

forums.arcgis.com

Page 85: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

blogs.esri.com/esri/arcgis

Page 86: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

video.arcgis.com

Page 87: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

ideas.arcgis.com

Page 88: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

www.arcgis.com

Page 89: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 90: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

Esri Developer Network (EDN)

• Annual Subscription- Standard or Advanced

• Developer license

• ArcGIS platform- products, extensions

- desktop, server, web, mobile

- full functionality - it's everything

• Design, prototype, test, build

• Defer production costs until deployment

Page 91: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

edn.esri.com

Page 92: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

training.esri.com

Page 93: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry
Page 94: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

support.esri.com

Page 95: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

esri.com/DevSummit

Page 96: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

wiki.GIS.com

Page 97: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

stackoverflow.com

Page 98: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

gis.stackexchange.com

Page 99: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry

github.com/esrigithub.com/arcgis

Page 100: Introduction toArcGIS for Developers, Esri, Charles van der Put, Jim Barry