Awesome ArcGIS Developers 

An awesome set of resources to help you develop
with ArcGIS Products.
ArcGIS products give you access to APIs, location services, and tools
to develop your own mapping and spatial analysis applications. Use
mapping products for developers to build web, native, offline, desktop,
or integrated solutions for yourself, your organization, or other
organizations. Access a full suite of location services to provide
basemap layers, geocoding and routing capabilities, and other geospatial
functionalities. Securely host and manage your data in the ArcGIS
cloud.
Contents
APIs and SDKs
- ArcGIS API for
Python - Guides, sample notebooks and API reference to do mapping,
spatial analysis, data science, geospatial AI and automation using
Python.
- ArcGIS CityEngine
SDKs (C++) - C++ APIs, documentation and examples for the Procedural
Runtime (PRT).
- ArcGIS CityEngine SDKs
(Python) - Python bindings for the “Procedural Runtime” (PRT) of
CityEngine.
- ArcGIS
Earth Automation API - Guide, API reference and samples to
communicate with ArcGIS Earth.
- ArcGIS
Enterprise SDK - Guides, API reference and sample code to extent
ArcGIS Enterprise.
- ArcGIS Maps SDK for
.NET - Guides, sample codes and API reference to build desktop and
mobile apps using .Net.
- ArcGIS Maps SDK for
Java - Guides, sample codes and API reference to build desktop
apps.
- ArcGIS
Maps SDK for JavaScript - Guides, sample code, API references and
showcase to build 2D and 3D interactive web apps unlocking geospatial
data.
- ArcGIS Maps SDK for
Kotlin - Guides, sample codes and API reference to build mobile apps
using Kotlin.
- ArcGIS Maps SDK for
Qt - Guides, sample codes and API reference to build mobile and
desktop apps.
- ArcGIS Maps SDK for
Swift - Guides, sample codes and API reference to build mobile apps
using Swift.
- ArcGIS Maps SDK for
Unity - Guides, API reference and sample code to use ArcGIS data and
services to develop for Unity.
- ArcGIS Maps
SDK for Unreal Engine - Guides, API reference and sample code to use
ArcGIS data and services to develop for Unreal Engine.
- ArcGIS Pro
SDK for Microsoft .NET - Documentation, tutorials, API reference,
FAQ, etc. to extend ArcGIS Pro Desktop.
- ArcGIS REST APIs -
General documentation about ArcGIS REST APIs: location services, content
management, portal administration, and more.
- ArcGIS REST
APIs collections - Postman collections to work with some of the REST
APIs: location services, hosted feature layers, ArcGIS Online, ArcGIS
Hub, etc.
- ArcGIS REST
JS - Key concepts, tutorials and API reference of a collection of
JavaScript modules for accessing location services, ArcGIS Online, and
ArcGIS Enterprise REST APIs.
- ArcGIS
Urban API - Public GraphQL web service that can be used to interact
with ArcGIS Urban data directly.
- ArcObjects
SDK for .Net - Documentation about the .Net SDK for the library of
Component Object Model (COM) components that make up the foundation of
ArcGIS.
- ArcObjects
SDK for Java - Documentation about the Java SDK for the library of
Component Object Model (COM) components that make up the foundation of
ArcGIS.
- ArcPy
- Documentation about the python package to perform geographic data
analysis, data conversion, data management, and map automation in ArcGIS
Desktop or ArcGIS Enterprise environments.
- Esri
Leaflet - Key concepts, tutorials, API reference, plugins, sample
code to help you build web apps using Leaflet with ArcGIS Location
services.
- MapLibre GL
JS - Guide and tutorials to help you start building web apps with
MapLibre and ArcGIS location services.
- OpenLayers -
Guide and tutorials to help you start building web apps with OpenLayers
and ArcGIS location services.
ArcGIS location services
- ArcGIS
location services Postman Workspace - Postman collections to
facilitate work with many of the location services.
- Basemap
styles service (v1) - Access streets, satellite, and other basemap
styles for maps and scenes.
- Basemap
styles service (v2) - Access multiples map styles, add places of
interest, set labels languages, word views and more.
- Places
service - Search for businesses and geographic locations around the
world with detailed information about each place.
- Elevation
and hydrology services - Generate elevation profiles and viewsheds,
but also can trace water flow and generate watersheds.
- Geocoding
service - Search for addresses, businesses, and places around the
world.
- GeoEnrichment
service - Find facts and demographic information about a location or
area.
- Routing
service - Get turn-by-turn directions and solve advanced routing
problems.
- Printing
tools service - Generate static maps (png, jpg, pdf, etc.) from
advance web maps.
- Spatial
analysis service - Process spatial datasets to discover
relationships and patterns.
- Offline
packaging service - Create and manage preplanned map areas for
generating offline maps.
Code samples and snippets
- application-base-js
- Core class for creating a configurable application using
JavaScript/TypeScript.
- ArcGIS
API for JavaScript Sample Code - Esri’s official JavaScript API
product team samples.
- ArcGIS API
for Python Sample Notebooks - Esri’s official Python API product
team samples.
- ArcGIS Arcade
Expression Templates - Collection of reusable Arcade expressions
across all supported profiles.
- ArcGIS Code Sharing -
Search, browse, and use code, scripts, models, add-ins, widgets, and
more.
- ArcGIS
Maps SDK for Unity samples - Esri’s official ArcGIS Maps SDK for
Unity product team samples.
- ArcGIS
Maps SDK for Unreal Engine samples - Esri’s official ArcGIS Maps SDK
for Unreal Engine product team samples.
- ArcGIS
REST JS demos - Demo apps built by Esri’s REST JS maintainers.
- ArcGIS
Runtime API for .NET Android samples - Esri’s official ArcGIS
Runtime Android product team samples.
- ArcGIS
Runtime API for .NET iOS samples - Esri’s official ArcGIS Runtime
.NET product team samples.
- ArcGIS
Runtime API for Java samples - Esri’s official ArcGIS Runtime Java
product team samples.
- ArcGIS
Runtime API for .NET UWP samples - Esri’s official ArcGIS Runtime
.NET product team samples.
- ArcGIS
Runtime API for .NET WPF samples - Esri’s official ArcGIS Runtime
.NET product team samples.
- ArcGIS
Runtime API for Android Java samples - Esri’s official ArcGIS
Runtime Android product team samples for Java.
- ArcGIS
Runtime API for Android Kotlin samples - Esri’s official ArcGIS
Runtime Android product team samples for Kotlin.
- ArcGIS
Runtime API for iOS sample code - Esri’s official ArcGIS Runtime iOS
product team samples.
- ArcGIS
Runtime API for Qt C++ sample code - Esri’s official ArcGIS Runtime
Qt product team samples for C++.
- ArcGIS
Runtime API for Qt QML sample code - Esri’s official ArcGIS Runtime
Qt product team samples for QML.
- arcgis-js-api-starter-apps
- Collection of boilerplates to get started with the ArcGIS API for
JavaScript 4.x.
- Esri/arcgis-js-vscode-snippets
- Collection of Visual Studio Code snippets for common code patterns for
the ArcGIS API for JavaScript.
- Esri/developer-support
- Community samples to help be successful with all ArcGIS developer
products (Python, NET, JavaScript, Android…).
- Esri/jsapi-resources
- A collection of resources for developers using the ArcGIS API for
JavaScript.
- Esri/pyprt-examples -
Example for PyPRT (Python Bindings for the CityEngine SDK).
- esri-loader
Examples - Examples of how to use the ArcGIS API for JavaScript via
esri-loader in applications built with React, Angular, Vue, and other
frameworks.
- EsriDevEvents -
Supplemental source code, example projects, and resources supporting
Esri Developer Summits, Developer Day at Esri UC, FedGIS, #GeoDev
webinars, meetups, etc.
- esrinederland/CoolMaps
- Shows cool example maps you can use.
- esrinederland/CoolScripts
- Esri Netherlands scripts and snippets for reuse.
- RalucaNicola/code-snippets-arcgis-api-js
- A collection of code snippets for ArcGIS API for JavaScript.
- arcgis-json-to-geojson
- Convert layer in ArcGIS JSON spec to GeoJSON spec.
- csv2geojson
- Convert points from CSV format to GeoJSON.
- Distillery -
Web application to simplify and project TopoJSON.
- Feature
Service Layer - Use the
maxAllowableOffset parameter to
return generalized geometries with the query
operation.
- Generalize method -
GeometryEngine can produce a geometry with fewer vertices
programatically. Several APIs supports it: JavaScript, iOS, Android,
.NET, Qt and Java.
- gdal - Translator
library for raster and vector geospatial data formats.
- geojson2svg -
Render GeoJSON into SVG using inline or external stylesheet.
- geojsonio -
Convert many data formats to and from GeoJSON and TopoJSON.
- gpxstudio -
Online and open source GPX file editor.
- gtfs2geojson -
Convert GTFS data into GeoJSON.
- img2geojson -
Drag an image onto a map, trace the paths you need, and export as
GeoJSON.
- Koop - JavaScript toolkit for
connecting spatial APIs. Transform geospatial data on the fly and serve
as GeoJSON, vector tiles, feature services and more.
- loam - JavaScript
wrapper for GDAL in the browser.
- PostGIS
ST_Simplify - This operation returns a “simplified” version of the
given geometry using the Douglas-Peucker algorithm.
- terraformer -
Convert ArcGIS JSON to and from GeoJSON, convert WKT geometries to and
from GeoJSON geometries, and other formats.
- togeojson -
Convert KML and GPX to GeoJSON, without the fuss.
- tokml - Convert
GeoJSON to KML.
- ArcGIS
Data Interoperability Extension - Desktop tool to transform +400
data formats.
- FME Server - ETL
allowing to easily transform almost any dataset into an ArcGIS
compatible format and vice-versa. Support for 500+ formats and
technologies.
- Integromat
- iPaaS to automate repetitive tasks involved in using Survey123 and
make your work easier.
- node-red-contrib-arcgis-rest
- Query, delete, update or insert data with low-code programming for
event-driven applications of the JS Foundation.
- Zapier
for ArcGIS - iPaaS to automate integrations without writing any
code.
- Tray.io
- Manual, scheduled and webhook triggers to apply edits, get features,
layers, etc. using Tray Platform’s ArcGIS connector.
- Fiddler
Classic - Windows tool that logs HTTP(s) network traffic.
- GeoJSONLint - Validate and
view your GeoJSON.
- json-schema.org - Vocabulary
that allows you to annotate and validate JSON documents (include
multiple validators).
- mapbox/geojson-vt/debug
- Validate GeoJSON or TopoJSON.
- Postman
interceptor - Interceptor enables you to sync cookies from your
browser and capture network requests directly from Chrome.
- test-cors.org - App to test CORS
requests. You can either send the CORS request to a remote server (to
test if CORS is supported), or send the CORS request to a test server
(to explore certain features of CORS).
- netbalancer.com - Windows
application for local network traffic control and monitoring.
Design and styling
- Best practices, books, videos and training:
- Developer tools:
- GUIs:
Developer guides
- Content
management - Store, manage, and access private and public
content.
- Data
hosting - Store, manage, and access your data as data services.
- Demographics
- Discover local facts and demographic information with the
GeoEnrichment service.
- Maps
- Display 2D maps and 3D scenes using the basemap layer service and data
services.
- Offline
- Display, analyze, and edit data while disconnected.
- Routing
- Find routes and directions with the routing service.
- Search
- Search for addresses, businesses, and places of interest (POIs) with
the geocoding service.
- Security
and authentication - Access services and content using API keys and
OAuth 2.0.
- Visualization
- Style layers to visualize data in 2D and 3D.
Helpers
- arcgis-geometry-calculations
- Web application to create and grab ArcGIS geometry calculations.
- arcgis-js-api-camera-helper
- Web application to get the camera position JSON object for 3D web apps
in the ArcGIS API for JavaScript 4.x.
- arcgis-js-api-extent-helper
- Web application to get the map extent JSON object for web apps in the
ArcGIS API for JavaScript 4.x.
- ArcGIS
JS API Module Butler - VSCode extension for quickly adding ES import
statements for the @arcgis/core package without leaving
your current code context.
- epsg.io - Website to
discover and transform coordinate systems from all over the world.
- esri-loader - A
tiny library to help you lazy-load the ArcGIS API for JavaScript
(i.e. from the CDN) in applications built with popular JavaScript
frameworks and bundlers.
- esri-loader-hooks
- Custom React hooks for using the ArcGIS API for JavaScript with
esri-loader.
- geojson-random-generator
- Generate and download random GeoJSON quickly for testing.
- reducegeojson -
A tool to reduce the file size of GeoJSON files for web
optimisation.
- histogrand -
Random value generator according to customized histograms.
- mercator-geographic-converter
- Simple coordinate converter between Geographic units (latitude,
longitude) and Mercator units (x, y).
- react-sceneview - A
simple Esri SceneView react component that builds on the ArcGIS API for
JavaScript.
- bboxfinder - Simple web
application to get the coordinates of a bounding box drawn on the
map.
- snippets
client side raster functions - The client-side raster functions are
operations that apply processing directly to the source image
pixels.
Map and data exploration
- ArcGIS
Map Viewer - Web application to create, explore, and share web maps
for 2D applications.
- ArcGIS Map
Viewer (classic version) - Web application to create, explore, and
share web maps for 2D applications.
- ArcGIS
Scene Viewer - Web application to create, explore, and share web
maps for 3D applications.
- Geo
Data Viewer - VSCode extension for Geo Data Analytics. Support to
generate and view maps.
- geojson.io - Web
application to visualize, generate and edit geospatial vector data.
Supports GeoJSON, TopoJSON, CSV, KML, WKT, and shapefile.
- Mapshaper - Web
application to simplify shapes, edit attribute data, clipp, erase,
dissolve, filter, etc. Supported file formats: Shapefile, GeoJSON,
TopoJSON and CSV files.
- Smart Mapping
- It is built-in in the Map and Scene viewer, but some APIs like
JavaScript and Python also provide utilities to help building data
explorations tools.
- VSCode
Map Preview - Extension for visually previewing geospatial file
content (GeoJSON, KML, etc) on a map.
Playgrounds
Spatial Analysis
Specifications
- Cartographic Information
Model spec - Map content specification used to persist and transfer
cartographic descriptions of GIS datasets represented in JSON.
- Common
data types - JSON formats of the geometry and spatial reference
objects as returned by ArcGIS REST API: Point, Multipoint, Polyline,
Polygon and Envelope.
- GeoServices
spec - Open Web Foundation REST-based API that provides a complete
access to structured geospatial data used by Esri.
- Indexed 3D Scene
Layers - Service and package standard of containers for arbitrarily
large amounts of geographic data.
- Shapefile
Format - Spec for the geospatial vector data format for GIS
software.
- Spatial
reference specifications - List of Well-Known ID (WKID) integer
value or a text string definition referred to as Well-Known Text (WKT)
to define a spatial reference.
- Tile Package
Specification - Compressed file containing a set of tiles and a
tiling scheme, which can be used as a basemap in ArcGIS
applications.
- Web
Map spec - Sharable 2D maps. It describes the JSON object which
defines a web map.
- Web
Scene spec - A JSON structure that defines the contents (viewpoint,
camera, basemap layer, layers, styles, etc.) for a shareable 3D
scene.
Starter apps and CLIs
Related awesome lists
- awesome-arcgis -
Awesome list with a wiki flavor with resources about Esri and ArcGIS
organized by: products, industries, file formats, content providers,
etc.
- awesome-earthobservation-code
- Tools, tutorials, code, helpful projects and links about Earth
Observation and Geospatial stuff.
- awesome-geojson -
GeoJSON utilities: operations,editors & viewers, validation,
services, conversion, etc.
- awesome-geospatial
- Databases, radar, lidar, web map development, etc.
- awesome-gis -
GIS, remote sensing, 3D apps, Web Map Servers, Geospatial libraries,
Open Standards, data, etc.
- awesome-json-datasets
- JSON datasets that don’t require authentication about: climate, crime,
goverment, NASA, travel, etc.
- awesome-open-geoscience
- Curated from repositories that make our lives as geoscientists,
hackers, and data wranglers easier or just more awesome.
- awesome-public-datasets
- A topic-centric list of high-quality open datasets.
- awesome-remote-sensing-change-detection
- List of datasets, codes, and contests related to remote sensing change
detection.
- awesome-satellite-imagery-datasets
- List of satellite image training datasets with annotations for
computer vision and deep learning.
- awesome-semantic-segmentation
- Networks by architecture (semantic segmentation, instance aware
segmentation, etc.), RNN, GANS, datasets, and more.
- awesome-vector-tiles
- Implementations of the Mapbox Vector Tile specification: parsers &
generators, clients, apps and command line tools, CLI utilities,
servers, etc.
Issues
Any open issues are fair game. Even just telling us what you want to
see would be extremely helpful!
You can file
an issue to request or suggest a specific resource.
Contributing
Esri welcomes contributions from anyone and everyone. You can issue a
pull request to propose an update, but before doing it, please:
For more information please see our guidelines for
contributing.
Footnotes
Copyright 2022 Esri