ArcGIS

a Platform for Developers

What can developers do

with Esri technology?

 

 

Data Visualization

3D

Routing 

Public Information

Traffic Alerts

Native 3D Interactive Analysis

Native Open Source Example Applications

Jupyter Notebook

ArcGIS Platform

Web GIS

Getting Started

ArcGIS Developer Resources

Building Web Apps

Intro to the ArcGIS API for JavaScript

  • Guide
  • API Reference
  • Many Samples

Hello World + Examples

Python

Intro to the ArcGIS API for Python

  • Guide
  • API Reference
  • Many Samples

Quick Overview of the ArcGIS API for Python

  • A Pythonic GIS API
    • Corresponds to best practices
    • Uses standard Python constructs
    • Data structures with clean,                              readable idioms
  • Easy for a Python programmer to use ArcGIS
  • Easy for an ArcGIS user to script and              automate their GIS

Why Python?

  • Popularity
  • Productivity
  • Interoperability
  • Solves the “two-language” problem
  • Scientific Python ecosystem
  • Community

ArcGIS + Jupyter = 

Building Native Apps

ArcGIS Runtime Overview

Architecture

  • ArcGIS Runtime APIs – public APIs for multiple platforms
    • Same capabilities across all APIs
    • API surface is tailored to the relevant dev stack

ArcGIS Runtime Overview

  • Esri’s developer product for native app development
    • Incorporate ArcGIS functionality into mobile and desktop applications
    • Web service client and local (offline) capabilities
    • SDKs for .NET (including Xamarin), Android, iOS, Java, Qt, and macOS

         

 

ArcGIS Runtime Overview

  • High-performance 2D and 3D mapping
  • Integration with Portal, ArcGIS Online, and ArcGIS Server
    • Load, edit, and save web maps
    • Use map, image, and feature services
    • Geoprocessing for complex custom analyses
  • Work offline with local data and functionality
    • Read local data (.mmpk, .tpk, etc)
    • Geocode and Routing
    • Geometric operations (buffer, etc)
    • Take web maps offline
    • Feature service editing and sync

         

 

Offline vs Online

Performance vs Availability

  • Offline Data and Services
    • Sideload data/geocoders/network models for highly interactive performance
    • No round-trip to a server
    • Consider hybrid online + offline if appropriate
  • Consider Network Availability & Data Qualities:
    • Do you need to edit? If not, perhaps side-loading is an option.
    • Will many people get the same data? Maybe generate once, sideload often.
    • Lots of data changing often? Try to sync when on WiFi.
    • How fast is the network in the field?
    • How consistent is the network in the field? Patchy?

Perfomance

Work on the device

  • GeometryEngine
    • Manipulate geometry on the device
    • Buffer, Union, Difference etc.
    • Projection
  • Offline Data
    • Data on the device for highly interactive performance
    • No round-trip to a server
  • Graphics Overlays
    • Dynamic Mode (smaller number of moving graphics – good interactive performance)
    • Static Mode (large number of graphics – less interactive performance)

ArcGIS Runtime and you

ArcGIS Runtime SDKs

Where to start?

DevLabs

 

  • Step-by-step labs
  • Less than 20 minutes
  • No experience needed
  • Learn in any order

 

Example Apps

 

  • ArcGIS Runtime in real apps

  • Best practices

  • Kick-start your new app

  • Take what you want

  • Open Source

Example Apps

Example Apps

Developer Community

GeoNet

Esri's Online Community

geonet.esri.com

Github

Hundreds of open source repos

github.com/esri

ArcGIS for Developers

By Jim Barry

ArcGIS for Developers

workshop

  • 1,672