awesome-arcgis-developers
A curated list of resources to help you with ArcGIS development, APIs, SDKs, tools, and location services
https://github.com/Esri/awesome-arcgis-developers
Last synced: 2 days ago
JSON representation
-
APIs and SDKs
- ArcGIS Maps SDK for Swift - Guides, sample codes, and API reference to build mobile apps using Swift.
- 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 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.
- ArcGIS API for Python - Guides, sample notebooks and API reference to do mapping, spatial analysis, data science, geospatial AI and automation using Python.
- 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 integrations with OpenLayers - Guide and tutorials to help you start building web apps with OpenLayers and ArcGIS location services.
- ArcGIS Pro SDK for Microsoft .NET - Documentation, tutorials, API reference, FAQ, etc. to extend ArcGIS Pro Desktop.
- 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.
- 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 integrations with Leaflet - Learn how to connect Leaflet apps with ArcGIS services using the Esri-maintained Esri Leaflet plugin and ArcGIS REST JS, including tutorials, API references, and sample code.
- 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 extend ArcGIS Enterprise.
- ArcGIS Maps SDK for Java - Guides, sample codes, and API reference to build desktop apps.
- ArcGIS Maps SDK for .NET - Guides, sample codes, and API reference to build desktop and mobile apps using .NET.
- ArcGIS Maps SDK for Qt - Guides, sample codes, and API reference to build mobile and desktop apps.
- ArcGIS Maps SDK for Unity - Guides, API reference, and sample code to use ArcGIS data and services to develop for Unity.
- 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.
- Esri-gl - A community-maintained plugin that enables the use of ArcGIS services in Mapbox GL JS and MapLibre GL JS applications.
- ArcGIS Maps SDK for Flutter - Guides, sample codes, and API reference to build desktop and mobile apps using Flutter.
- ArcGIS integrations with CesiumJS - Guide and tutorials to help you start build mapping applications with CesiumJS and ArcGIS.
- ArcGIS integrations with MapLibre GL JS - Learn how to connect MapLibre GL JS apps with ArcGIS services using the Esri-maintained ArcGIS MapLibre plugin and ArcGIS REST JS, including tutorials, API references, and sample code.
-
Code samples and snippets
- 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 Code Sharing - Search, browse, and use code, scripts, models, add-ins, widgets, and more.
- ArcGIS Runtime API for Java samples - Esri's official ArcGIS Runtime Java product team samples.
- EsriDevEvents - Supplemental source code, example projects, and resources supporting Esri Developer Summits, Developer Day at Esri UC, FedGIS, #GeoDev webinars, meetups, etc.
- application-base-js - Core class for creating a configurable application using JavaScript/TypeScript.
- Esri/pyprt-examples - Example for PyPRT (Python Bindings for the CityEngine SDK).
- ArcGIS API for Python Sample Notebooks - Esri's official Python API product team samples.
- ArcGIS Code Sharing - Search, browse, and use code, scripts, models, add-ins, widgets, and more.
- ArcGIS Maps SDK for .NET MAUI samples - Esri's official ArcGIS Maps SDK MAUI product team samples.
- ArcGIS Maps SDK for .NET WinUI samples - Esri's official ArcGIS Maps SDK for .NET product team samples.
- ArcGIS Maps SDK for Kotlin samples - Esri's official ArcGIS Maps SDK for Kotlin product team samples for Kotlin.
- arcgis-js-api-starter-apps - Collection of boilerplates to get started with the ArcGIS API for JavaScript 4.x.
- ArcGIS API for Python Sample Notebooks - Esri's official Python API product team samples.
- Esri/developer-support - Community samples to help be successful with all ArcGIS developer products (Python, .NET, JavaScript, Android…).
- esrinederland/CoolScripts - Esri Netherlands scripts and snippets for reuse.
- ArcGIS Maps SDK for .NET UWP samples - Esri's official ArcGIS Maps SDK for .NET product team samples.
- ArcGIS Maps SDK for .NET WPF samples - Esri's official ArcGIS Maps SDK for .NET product team samples.
- ArcGIS Arcade Expression Templates - Collection of reusable Arcade expressions across all supported profiles.
- ArcGIS Maps SDK for iOS sample code - Esri's official ArcGIS Maps SDK for iOS product team samples.
- ArcGIS API for JavaScript Sample Code - Esri's official JavaScript API product team samples.
- ArcGIS REST JS demos - Demo apps built by Esri's REST JS maintainers.
- Esri/arcgis-js-vscode-snippets - Collection of Visual Studio Code snippets for common code patterns for the ArcGIS API for JavaScript.
- Esri/jsapi-resources - A collection of resources for developers using the ArcGIS API for JavaScript.
- RalucaNicola/code-snippets-arcgis-api-js - A collection of code snippets for ArcGIS API for JavaScript.
- esrinederland/CoolMaps - Shows cool example maps you can use.
- ArcGIS Maps SDK for Qt C++ sample code - Esri's official ArcGIS Maps SDK for Qt product team samples for C++.
- 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 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.
- Spatial analysis service - Process spatial datasets to discover relationships and patterns.
- Places service - Search for businesses and geographic locations around the world with detailed information about each place.
- 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.
- Offline packaging service - Create and manage preplanned map areas for generating offline maps.
- Basemap styles service (v2) - Access multiple map styles, add places of interest, set label languages, word views, and more.
- Elevation service - Get the vertical distance (height) of a location above or below the mean sea level or ground level.
- Hydrology analysis service - Trace water flow and generate watersheds.
- Printing tools service - Generate static maps (png, jpg, pdf, etc.) from advanced web maps.
- Spatial analysis service - Process spatial datasets to discover relationships and patterns.
-
Data integration tools
- Integromat - iPaaS to automate repetitive tasks involved in using Survey123 and make your work easier.
- Tray.io - Manual, scheduled and webhook triggers to apply edits, get features, layers, etc. using Tray Platform's ArcGIS connector.
- Integromat - iPaaS to automate repetitive tasks involved in using Survey123 and make your work easier.
- FME Server - ETL allowing to easily transform almost any dataset into an ArcGIS compatible format and vice-versa. Support for 500+ formats and technologies.
- Koop - JavaScript toolkit for connecting spatial APIs. Transform geospatial data on the fly and serve as GeoJSON, vector tiles, feature services, and more.
- Make.com - iPaaS to automate repetitive tasks involved in using Survey123 and make your work easier.
- 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.
- ArcGIS Data Interoperability Extension - Desktop tool to transform +400 data formats.
- node-red-contrib-arcgis-rest - Query, delete, update, or insert data with low-code programming for event-driven applications of the JS Foundation.
-
Debugging tools
- mapbox/geojson-vt/debug - Validate GeoJSON or TopoJSON.
- 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).
- cors-test.codehappy.dev - App to test CORS requests.
- mapbox/geojson-vt/debug - Validate GeoJSON or TopoJSON.
- 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 (including multiple validators).
- Postman interceptor - Interceptor enables you to sync cookies from your browser and capture network requests directly from Chrome.
- netbalancer.com - Windows application for local network traffic control and monitoring.
-
Design and styling
- Cartography and Making Stunning Maps - Short video showing some examples of what can be achieved using different blend modes effects.
- How to style using ArcGIS Online - Playlist with a collection of short videos showcasing some ArcGIS styling capabilities.
- Calcite Intellisense Visual Studio Code Extension - Injects HTML IntelliSense (completion, hover, documentation) for Esri Calcite Design System web components, using Esri's official custom-data JSON.
- Calcite Snippets Visual Studio Code Extension - A collection of handy code snippets for the Calcite Design System components, designed to boost your productivity when building web applications with Calcite in Visual Studio Code.
- arcgis-vectortile-style-editor - Minimalistic tool to update the styles of Esri Vector Basemaps through JSON.
- EsriUK mapstyler - Quickly style an Esri vector tile layer using an image.
- Photoshop-style Graphics Effects for Your Layers and Data - Video explaining how to use blend modes as well as layer and feature effects to create unique and stunning web maps using the ArcGIS API for JavaScript 4.x.
- MapUIPatterns - Best practices & design principles. UI Patterns describe solutions to observed and recurring design problems.
- Calcite Design System - Collection of mapping icons, web components, and good practices.
- ArcGIS Vector Tile Style Editor - Style vector tile basemap layers for applications.
-
Helpers
- epsg.io - Website to discover and transform coordinate systems from all over the world.
- bboxfinder - Simple web application to get the coordinates of a bounding box drawn on the map.
- 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.
- epsg.io - Website to discover and transform coordinate systems from all over the world.
- 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 optimization.
- 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.
- ArcGIS JS API Module Butler - VSCode extension for quickly adding ES import statements for the @arcgis/core package without leaving your current code context.
- 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.
- snippets client side raster functions - The client-side raster functions are operations that apply processing directly to the source image pixels.
-
Spatial Analysis
- ArcGIS API for Python `arcgis.geometry`
- Turf.js - Geospatial analysis for browsers and Node.js.
- ArcGIS Analysis services - Spatial, raster, elevation, hydrology, and utility network analysis.
- Esri/gis-tools-for-hadoop - Collection of GIS tools for spatial analysis of big data.
- Esri/spatial-framework-for-hadoop - Allows developers and data scientists to use the Hadoop data processing system for spatial data analysis.
- Client-side Geometry Engine - Allows you to test spatial relationships, calculate new geometries, and measure lengths, areas, distances, etc.
- ArcGIS API for Python `arcgis.geometry`
- Turf.js - Geospatial analysis for browsers and Node.js.
- ArcGIS API for JavaScript `geometryEngine` - Works for browsers and Node.js.
- ArcGIS Maps SDK for .NET `GeometryEngine`
- ArcGIS Maps SDK for Android `GeometryEngine`
- ArcGIS Maps SDK for iOS `AGSGeometryEngine`
- ArcGIS Maps SDK for Qt `GeometryEngine`
-
Starter apps and CLIs
-
Data conversion tools
- gdal - Translator library for raster and vector geospatial data formats.
- loam - JavaScript wrapper for GDAL in the browser.
- geojson2svg - Render GeoJSON into SVG using an inline or external stylesheet.
- geojsonio - Convert many data formats to and from GeoJSON and TopoJSON.
- gtfs2geojson - Convert GTFS data into GeoJSON.
- img2geojson - Drag an image onto a map, trace the paths you need, and export as GeoJSON.
- 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.
- Distillery - Web application to simplify and project TopoJSON.
- Generalize method - GeometryEngine can produce a geometry with fewer vertices programmatically. Several APIs support it: JavaScript, iOS, Android, .NET, Qt, and Java.
- Mapshaper - Web application to simplify shapes, edit attribute data, clip, erase, dissolve, filter, etc. Supported file formats: Shapefile, GeoJSON, TopoJSON, and CSV files.
- arcgis-json-to-geojson - Convert layer in ArcGIS JSON spec to GeoJSON spec.
- csv2geojson - Convert points from CSV format to GeoJSON.
- Feature Service Layer - Use the `maxAllowableOffset` parameter to return generalized geometries with the `query` operation.
- PostGIS ST_Simplify - This operation returns a *simplified* version of the given geometry using the Douglas-Peucker algorithm.
-
Map and data exploration
- ArcGIS Map Viewer (classic version) - Web application to create, explore, and share web maps for 2D applications.
- geojson.io - Web application to visualize, generate, and edit geospatial vector data. Supports GeoJSON, TopoJSON, CSV, KML, WKT, and Shapefile.
- gpxstudio - Online and open source GPX file editor.
- Smart Mapping - It is built into the Map and Scene viewer, but some APIs like JavaScript and Python also provide utilities to help build data exploration tools.
- ArcGIS Map Viewer - 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.
- VSCode Map Preview - Extension for visually previewing geospatial file content (GeoJSON, KML, etc) on a map.
-
Playgrounds
- cim-symbol-builder - Generate CIM symbols to work with ArcGIS client APIs and feature services.
- geometry-inspector - Quickly show EsriJSON, GeoJSON, or WKT on a map, or draw on a map to get EsriJSON, GeoJSON, or WKT.
- Firefly Symbols Generator - Firefly symbol generation.
- arcgis-arcade-playground - Try the portable scripting language for creating ArcGIS custom visualizations and labeling expressions.
- js-symbol-playground 3.x - Generate symbols to work with the ArcGIS API for JavaScript 3.x.
- js-symbol-playground 4.x - Generate symbols to work with the ArcGIS API for JavaScript 4.x.
- Postman workspaces - Postman collections to experiment with location services and authentication.
-
Specifications
- Cartographic Information Model spec - Map content specification used to persist and transfer cartographic descriptions of GIS datasets represented in JSON.
- GeoServices spec - Open Web Foundation REST-based API that provides 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.
- Tile Package Specification - Compressed file containing a set of tiles and a tiling scheme, which can be used as a basemap in ArcGIS applications.
- awesome-earthobservation-code - Tools, tutorials, code, helpful projects, and links about Earth Observation and Geospatial stuff.
- 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-open-geoscience - Curated from repositories that make our lives as geoscientists, hackers, and data wranglers easier or just more awesome.
- 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.
- file an issue
- issue a pull request
- previously logged issues
- guidelines for contributing
- Common data types - JSON formats of the geometry and spatial reference objects as returned by ArcGIS REST API: Point, Multipoint, Polyline, Polygon and Envelope.
- 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.
- Web Map spec - Sharable 2D maps. It describes the JSON object that 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.
- awesome-geojson - GeoJSON utilities: operations,editors & viewers, validation, services, conversion, etc.
- awesome-json-datasets - JSON datasets that don't require authentication about: climate, crime, government, NASA, travel, etc.
- awesome-public-datasets - A topic-centric list of high-quality open datasets.
-
Application generators and CLIs
- @arcgis/cli - Quickly scaffold various applications for the ArcGIS API for JavaScript.
- generator-esri-appbuilder-js - Yeoman generator to help customize Esri's Web AppBuilder.
- koop-cli - Tool to scaffold Koop applications and plugins.
-
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.
- Geocoding - Search for addresses, businesses, and places of interest (POIs) with the geocoding 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.
- Security and authentication - Access services and content using API keys and OAuth 2.0.
- Visualization - Style layers to visualize data in 2D and 3D.
Programming Languages
Categories
Code samples and snippets
29
APIs and SDKs
28
Specifications
24
Helpers
16
Data conversion tools
16
ArcGIS location services
13
Spatial Analysis
13
Data integration tools
10
Design and styling
10
Debugging tools
9
Developer guides
9
Map and data exploration
8
Playgrounds
7
Application generators and CLIs
3
Starter apps and CLIs
1
Sub Categories
Keywords
arcgis
14
javascript
13
geojson
10
gis
8
esri
7
awesome
7
arcgis-js-api
7
web-development
6
spatial-analysis
6
awesome-list
5
remote-sensing
5
data-management
4
maps
4
geospatial
4
arcgis-api
3
typescript
3
3d
3
python
3
cityengine
3
mapping
3
earth-observation
3
svg
2
geospatial-data
2
satellite-imagery
2
raster
2
topojson
2
machine-learning
2
search-engine
2
resources
2
api
2
google-cse
2
react
2
deep-learning
2
vuejs
2
architecture
2
datasets
2
cga
2
list
2
procedural
2
dataset
2
geometry
2
cli
2
map
2
web
2
python3
2
geotools
2
native-development
2
layer
2
specification
2
processing
1