Developing Web Applications with Geocoding and Routing Services Using ArcGIS Online. Deelesh Mandloi Dmitry Kudinov Brad Niemand

Similar documents
ArcGIS Online: Developing Web Applications with Geocoding and Routing Services. Deelesh Mandloi Dmitry Kudinov Brad Niemand

ArcGIS Online: Developing Web Applications with Routing Services. Deelesh Mandloi Dmitry Kudinov

ArcGIS Online: Using the Python API for Transportation Network Analysis. Deelesh Mandloi and Dmitry Kudinov

Network Analysis with ArcGIS Online and On-premise Services

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

Enabling High-Quality Printing in Web Applications

Building Apps with the ArcGIS Runtime SDK for ios

Network Analyst: An Introduction

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

Enabling High-Quality Printing in Web Applications

Network Analyst: Performing Network Analysis

Web AppBuilder Presented by

ArcGIS for Server Administration. Andrew Sakowicz

Building Applications with the ArcGIS Runtime SDK for WPF

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

Web AppBuilder for ArcGIS: JavaScript Apps Made Easy

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

Enabling High-Quality Printing in Web Applications. Tanu Hoque & Jeff Moulds

ArcGIS Enterprise: Portal Administration BILL MAJOR CRAIG CLEVELAND

Navigator for ArcGIS an Introduction

ArcGIS Enterprise: Architecture & Deployment. Anthony Myers

Developing Qt Apps with the Runtime SDK

Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy

ArcGIS Enterprise: Sharing Imagery. Zikang Zhou Imagery and Raster team

ArcWeb Services (APIs, GIS Content and Functionality)

ArcGIS for Server: What s New. Philip Heede, Jay Theodore

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

Building a Modern Geocoding Experience in your Applications using Suggestions and Categories. Christa Hash Brad Niemand

Building Java Apps with ArcGIS Runtime SDK

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

ArcGIS for Server: Administration and Security. Amr Wahba

Working with Feature Layers. Russell Brennan Gary MacDougall

ArcGIS Enterprise: Advanced Topics in Administration. Thomas Edghill & Moginraj Mohandas

ArcGIS Runtime SDKs Building Offline Apps. Nick Furness

Navigator for ArcGIS Presented by

What s New in ArcGIS 10.3 for Server. Tom Shippee Esri Training Services

Develop and test your Mobile App faster on AWS

Implementing a Hybrid Approach to ArcGIS. Philip McNeilly and Margaret Jen

ArcGIS Enterprise Extending Services. Bill Major

ArcGIS for Server: Security

Enabling High-Quality Printing in Web Applications. Tanu Hoque & Craig Williams

Building Android Apps Runtime SDK for Android

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

We do More VMAP DOCUMENTATION

Product-Specific Terms of Use

Networks in GIS. Geometric Network. Network Dataset. Utilities and rivers One-way flow. Traffic data 2-way flow Multi-modal data

Real-Time & Big Data GIS: Leveraging the spatiotemporal big data store

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

Citrix Analytics Data Governance Collection, storage, and retention of logs generated in connection with Citrix Analytics service.

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

ArcGIS Runtime SDK for.net Getting Started. Jo Fraley

ArcGIS Online. The Road Ahead Geoff Mortson

ArcGIS Runtime SDK for WPF

An introduction to ArcGIS Runtime

Configuring ArcGIS Enterprise in Disconnected Environments

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

EPHP a tool for learning the basics of PHP development. Nick Whitelegg School of Media Arts and Technology Southampton Solent University

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

Creating Web Mapping Applications. Nikki Golding

Converting the Roads & Highways Advanced LRS to a Routable Network. Eric J. Rodenberg

ArcGIS Server and Portal for ArcGIS An Introduction to Security

ArcGIS Enterprise Security: An Introduction. Gregory Ponto & Jeff Smith

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

Geo-enable your.net apps with ArcGIS Online and Runtime. Antti Kajanus Thad Tilton

ArcGIS Online A Security, Privacy, and Compliance Overview. Andrea Rosso Michael Young

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

SAS STUDIO. JUNE 2014 PRESENTER: MARY HARDING Education SAS Canada. Copyr i g ht 2014, SAS Ins titut e Inc. All rights res er ve d.

Developing Microsoft Azure Solutions (70-532) Syllabus

Getting Started with ArcGIS Runtime. Jeff Shaner David Cardella

ArcGIS Runtime SDK for Android: Building Apps. Shelly Gill

Creating Geoprocessing Services and Web Tools. Darren Baird, PE, Esri

Agenda. Introduction. Supported Formats. Creating a Custom REST Service. What s Next

TRAINING GUIDE. Lucity GIS. Web Administration

Alteryx Technical Overview

Developing Microsoft Azure Solutions (70-532) Syllabus

Extending ArcGIS Maps for SharePoint. Quan Tang Scott Ball

Deploying and Using ArcGIS Enterprise in the Cloud. Bill Major

Data Interoperability An Introduction

ArcGIS Viewer for Microsoft Silverlight An Introduction

Integrating Imagery into ArcGIS Runtime Application. Jie Zhang, Zhiguang Han San Jacinto, 5:30 pm 6:30 pm

Web AppBuilder for ArcGIS: A Deep Dive in Enterprise Deployments. Nick Brueggemann and Mark Torrey

Homework 8: Ajax, JSON and Responsive Design Travel and Entertainment Search (Bootstrap/Angular/AJAX/JSON/jQuery /Cloud Exercise)

Working with Printing Service: Advanced Topics JEFF MOULDS TANU HOQUE

Both ArcGIS Online and ArcWeb Services: Focused on the ArcGIS User Deeply integrated within ArcGIS System

Qlik Sense Certification Exam Study Guide

3D in the ArcGIS Platform. Chris Andrews

ArcGIS Enterprise Portal for ArcGIS

Network Analyst Creating Network Datasets. Jay Sandhu Frank Kish

Release Notes Release (December 4, 2017)... 4 Release (November 27, 2017)... 5 Release

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

Architect your deployment using Chef

Developing Mobile Apps with the ArcGIS Runtime SDK for.net

Getting Started with ArcGIS Runtime SDK for Java SE

Esri Developer Summit in Europe ArcGIS Runtime for ios

What s s Coming in ArcGIS 10 Desktop

Leveraging the Globus Platform in your Web Applications. GlobusWorld April 26, 2018 Greg Nawrocki

What s New in ArcGIS 10.4 for Server

Web Mapping Applications with ArcGIS. Bernie Szukalski Derek Law

ArcGIS Viewer for Flex An Introduction

Kony MobileFabric Engagement Services QuickStart Guide

Transcription:

Developing Web Applications with Geocoding and Routing Services Using ArcGIS Online Deelesh Mandloi Dmitry Kudinov Brad Niemand

Metadata Slides will be available at http://proceedings.esri.com Documentation at http://developers.arcgis.com - First read the REST API doc and then read the doc for your SDK Code samples at http://nadev.arcgis.com/arcgis/samples

Topics What geocoding and routing services are available with ArcGIS Online? What can I do with the services? How to access the services? How much will the services cost me? - To develop my application (Free fine print ) - To deploy my application

Geocoding Service Turn addresses into coordinates Search for point-of-interest, business names Auto-complete inputs using suggestions Convert coordinates into addresses Convert a table of addresses into points

Geocoding Service Coverage Supports global coverage Hosted and managed by Esri Powered by authoritative content that is updated on a regular basis View larger map

Geocoding Service Use Cases Geosearch with Suggestions You can locate an address, or find a place, feature, or point-ofinterest. The search result is displayed on the map Batch Geocoding you can convert an address to an x, y coordinate and store the result in a database. Reverse Geocoding You can also reverse geocode an x, y coordinate to get an address

Service Operations Geosearch If your input is single text field use find operation - Example: Find Palm Springs,CA https://geocode.arcgis.com/arcgis/rest/services/world/geocodeserve r/find?text=palm Springs,CA&f=pjson Pass in location and distance to perform local search - Example: Find 5 local Starbucks within 5 miles. Get the street address for each Starbucks https://geocode.arcgis.com/arcgis/rest/services/world/geocodeser ver/find?text=starbucks&maxlocations=5&location=- 116.5453,33.8303&distance=8000&outFields=Place_addr&f=pjson

Service Operations -- Geosearch If your input is in multiple text fields use findaddresscandidates operation - Example: Find Address = 277 N Avenida Caballeros, City = Palm Springs, State = CA, Zip = 92262 https://geocode.arcgis.com/arcgis/rest/services/world/geocodeserver /findaddresscandidates?address=277 N Avenida Caballeros&City=Palm Springs&Region=CA&Postal=92262&f=pjson Pass in location and distance to perform local search

Service Operations Geosearch with Suggestions Use suggest operation to get a list of candidates for input text - Example: Get local suggestions for palm springs co https://geocode.arcgis.com/arcgis/rest/services/world/geocodeserver /suggest?text=palm springs co&location=- 116.5453,33.8303&distance=50000&f=pjson Use text and magickey obtained from suggest operation with find or findaddresscandidates operations - Example: Use suggestion to perform geosearch https://geocode.arcgis.com/arcgis/rest/services/world/geocodeserver /find?text=palm Springs Convention Center (Convention Center), 277 N Avenida Caballeros, Palm Springs, California&magicKey=JS91CYhQDS5vDPhvSMyGZby0YFbKQ5oEMskKCDNuYb9QDo4 AYc5LDMhACbcn&location=-116.5453,33.8303&distance=50000&f=pjson

Service Operations Reverse Geocoding To convert coordinates into an address use reversegeocode operation - Example: Find street address for Palm Spring Convention Center https://geocode.arcgis.com/arcgis/rest/services/world/geocodeserv er/reversegeocode?location=-116.537,33.8254&f=pjson

Demo Local geosearch with auto-completion using the geocoder widget find and suggest geocoding operations

Batch Geocoding Convert a table of addresses into points Synchronous operation that supports SuggestedBatchSize (currently set to 150) records per request - Requires chunking of inputs on client side Workflows to perform batch geocoding - Geocode Addresses geoprocessing tool - Use additem, analyze, generate and publish operations from ArcGIS Online - geocodeaddresses operation from the geocoding service

Geocode Addresses geoprocessing tool Available with ArcGIS for Desktop, ArcGIS Engine and ArcGIS for Server Requires an ArcGIS Server connection file (.ags file) Automatically chunks your input table Handles timeouts and failure from any intermediate requests

Geocode Addresses geoprocessing tool Create ArcGIS Server connection file using ArcGIS for Desktop

Geocode Addresses geoprocessing tool The tool can also be accessed in Python scripts

Batch Geocoding using analyze, generate, publish Operations available with arcgis.com Make use of the geocoding service behind the scenes Useful when working with web maps and apps Simplifies client-side logic - Automatically chunks input table - Handles timeouts and failure from any intermediate requests

Batch Geocoding using analyze and generate Example use case: Drag and drop a CSV file to perform batch geocoding and save results in a web map Use analyze to get publishparameters https://www.arcgis.com/sharing/rest/content/features/analyze?file=<f ile name>&type=csv&f=json Use generate to geocode the CSV file and create JSON feature collection that can be persisted in a web map https://www.arcgis.com/sharing/rest/content/features/generate?token= <your token>&file=<file name>&type=csv&publishparameters=<publish parameters>&f=json

Batch Geocoding using additem, analyze and publish Example use case: Upload a CSV file to arcgis.com and publish the file as a feature service Use additem to upload the file to arcgis.com and get the item id https://www.arcgis.com/sharing/rest/content/users/<username>/additem?token= <your token>&file=<file name>&type=csv&iteminfoparameters=<item info parameters>&f=json Use the item id with analyze to get publishparameters https://www.arcgis.com/sharing/rest/content/features/analyze?itemid=<item ID>&type=csv&f=json Use publish to geocode the uploaded CSV file and save the results as a feature service https://www.arcgis.com/sharing/rest/content/users/<username>/publish?token= <your token>&itemid=<item ID>&filetype=csv&publishParameters=<publish parameters>&f=json

Batch Geocoding using geocodeaddresses operation Need to provide the client side logic to - Chunk input table into batches of size SuggestedBatchSize (currently set to 150) - Handle timeouts and failure from any intermediate requests - Persist the results from each successful intermediate requests Useful if batch geocoding is part of a back end enterprise process

Demo Batch geocode a CSV file containing restaurant addresses - analyze and generate operations - View live sample Works best with Google Chrome browser

Routing Services Services that allow you to perform analyses on street networks Directions Closest Facility Service Areas Beta Traffic Location-Allocation Vehicle Routing Problem

Common to all Services Work globally - Currently 147 countries. - New countries are added periodically Use high quality underlying street data - Real time traffic where available - Support for vehicle weight, width and height restrictions - Can use preferred truck routes or avoid toll roads View larger map

Directions Point-to-point routing Simple Route Find the best route for visiting a series of stops that minimizes travel time or travel distance Optimized route Use live traffic conditions Driving directions in many languages Synchronous and Asynchronous execution

Directions Request URL (Synchronous Execution) https://route.arcgis.com/arcgis/rest/services/world/ro ute/naserver/route_world/solve?<parameters> Example Request (Synchronous Execution) https://route.arcgis.com/arcgis/rest/services/world/ro ute/naserver/route_world/solve?token=<yourtoken>&stops =-122.4079,37.78356;-122.404,37.782&f=pjson

Closest Facility Find the closest facilities from each incident Generate routes and driving directions You can also - Use live traffic conditions - Limit the search distance - Limit the number of facilities to find - Travel from the facility to the incident Synchronous and Asynchronous execution

Closest Facility Request URL (Synchronous Execution) https://route.arcgis.com/arcgis/rest/services/world/clos estfacility/naserver/closestfacility_world/solveclosestf acility?<parameters> Example Request (Synchronous Execution) https://route.arcgis.com/arcgis/rest/services/world/clos estfacility/naserver/closestfacility_world/solveclosestf acility?token=<yourtoken>&incidents=- 122.4496,37.7467&facilities= -122.4267,37.7486;- 122.4561,37.7513&f=pjson

Service Areas Find the area you can reach from a location in a given time period You can also - Solve for many locations - Use multiple drive time values - Analyze for different times of the day - Specify the direction of travel Synchronous and Asynchronous execution

Service Areas Request URL (Synchronous Execution) https://route.arcgis.com/arcgis/rest/services/world/serv iceareas/naserver/servicearea_world/solveservicearea?<pa rameters> Example Request (Synchronous Execution) https://route.arcgis.com/arcgis/rest/services/world/serv iceareas/naserver/servicearea_world/solveservicearea?tok en=<yourtoken>&facilities=-122.4496,37.7467&f=pjson

Vehicle Routing Problem Route a fleet of vehicles to service a set of orders You can also specify - Vehicle capacities - Driver specialties - Work breaks - Time windows on orders Synchronous and Asynchronous execution

Vehicle Routing Problem Request URLs (Asynchronous Execution) Submit Job https://logistics.arcgis.com/arcgis/rest/services/world/vehiclerout ingproblem/gpserver/solvevehicleroutingproblem/submitjob?<parameter s> Get Job Status https://logistics.arcgis.com/arcgis/rest/services/world/vehiclerout ingproblem/gpserver/solvevehicleroutingproblem/jobs/<yourjobid>?tok en=<yourtoken>&f=json Get Outputs https://logistics.arcgis.com/arcgis/rest/services/world/vehiclerout ingproblem/gpserver/solvevehicleroutingproblem/jobs/<yourjobid>/res ults/<output_parameter_name>?token=<yourtoken>&f=json

Location-Allocation (Beta) Choose best facilities based on their potential interaction with demand points You can also - Choose from many different analysis types - Limit the capacity of facilities - Analyze for different times of the day Asynchronous execution only

Location-Allocation Request URLs (Asynchronous Execution) Submit Job https://logistics.arcgis.com/arcgis/rest/services/world/locationall ocation/gpserver/solvelocationallocation/submitjob?<parameters> Get Job Status https://logistics.arcgis.com/arcgis/rest/services/world/locationall ocation/gpserver/solvelocationallocation/jobs/<yourjobid>?token=<yo urtoken>&f=json Get Outputs https://logistics.arcgis.com/arcgis/rest/services/world/locationall ocation/gpserver/solvelocationallocation/jobs/<yourjobid>/results/< output_parameter_name>?token=<yourtoken>&f=json

Traffic Visualize traffic speeds - Support for live, historical and predictive traffic conditions Traffic Incidents Background layer to display results from routing services Data updated every five minutes Synchronous execution only

Traffic Request URL https://traffic.arcgis.com/arcgis/rest/services/world/tr affic/mapserver/export?<parameters> Example Request http://traffic.arcgis.com/arcgis/rest/services/world/tra ffic/mapserver/export?token=<yourtoken>&bbox=- 13168112.16706758,4029125.2769380505,- 13152117.71889893,4037275.375078947&f=image

Demo Find best routes for the three trucks to make deliveries to the restaurants - Use the vehicle routing problem service - View live sample Works best with Google Chrome browser

Accessing Geocoding and Routing Services Every request to a secured service requires a valid token Geosearch operations can be made anonymously if you are not storing the results - If storing results, you need to pass a token and forstorage=true Batch geocoding is a secured operation All routing services are secured Secured services require an ArcGIS Online Organization Subscription - Sign up for a 30 day free trial at www.arcgis.com - Sign up for a free introductory developer account

Authentication OAuth2 and non- Oauth Use OAuth2 for better tracking of how your app is using the services Your app asks the end users to login (User logins) Use the identity manager provided by your SDK Your app logs in behind the scenes (App logins) Register your app and get an AppID and AppSecret Manage your AppID and AppSecret using a server side proxy Proxy examples in.net, Java and PHP on Esri s github site Authentication documentation

Understanding Your Bill Service Credits Every successful request to secured services deducts credits from your organization - Use of traffic service does not deduct credits - Use of location-allocation service does not deduct credits while in beta Track credits used by your app Credits Explained Credit Estimator

Data Privacy Concerns When performing batch geocoding, do I have to send in my sensitive data along with the addresses to Esri s cloud? No. You can just send in your addresses and a value from a key field that can be used to join back geocoded points to your data. Does Esri store my routes? No. For synchronous requests the routes are returned instantly to the client and never stored. For asynchronous requests the routes are stored for 24 hours and automatically deleted. No relationship between input request and output routes is stored.

Session Evaluation http://www.esri.com/events/devsummit/session-rater