An awesome set of resources to help you with ArcGIS Platform development, APIs, SDKs, tools, and location services.
ArcGIS Platform is Esri's Platform as a Service (PaaS) for mapping and location analysis applications with ready-to-use location services, data hosting, APIs, tools, and content management services.
- APIs and SDKs
- ArcGIS location services
- Code samples and snippets
- Data conversion tools
- Data integration tools
- Debugging tools
- Design and styling
- Developer guides
- Helpers
- Map and data exploration
- Playgrounds
- Related awesome lists
- Spatial Analysis
- Specifications
- Starter apps and CLIs
- ArcGIS API for JavaScript - Guides, sample code, API references and showcase to build 2D and 3D interactive web apps unlocking geospatial data.
- ArcGIS API for Python - Guides, sample notebooks and API reference to do mapping, spatial analysis, data science, geospatial AI and automation using Python.
- 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 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 Runtime API for .NET - Guides, sample codes and API reference to build desktop and mobile apps using .Net.
- ArcGIS Runtime API for Android - Guides, sample codes and API reference to build mobile apps using Java or Kotlin.
- ArcGIS Runtime API for iOS - Guides, sample codes and API reference to build mobile apps using Swift or Objective-C.
- ArcGIS Runtime API for Java - Guides, sample codes and API reference to build desktop apps.
- ArcGIS Runtime API for Qt - Guides, sample codes and API reference to build mobile and desktop apps.
- 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.
- Mapbox GL JS - Guide and tutorials to help you start building web apps with Mapbox and ArcGIS location services.
- OpenLayers - Guide and tutorials to help you start building web apps with OpenLayers and ArcGIS location services.
- Basemap layer service - Access streets, satellite, and other basemap styles for maps and scenes.
- 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.
- 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 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-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.
- 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 thequery
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.
- gtfs2geojson - Convert GTFS data into 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.
- ArcGIS Vector Tile Style Editor - Style vector tile basemap layers for applications.
- arcgis-vectortile-style-editor - Minimalistic tool to update the styles of Esri Vector Basemaps through JSON.
- Calcite Design System - Collection of mapping icons, web components, and good practices.
- EsriUK mapstyler - Quickly style an Esri vector tile layer using an image.
- MapUIPatterns - Best practices & design principles. UI Patterns describe solutions to observed and recurring design problems.
- 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.
- 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.
- 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.
- react-arcgis - A library with a few ready to use React components (
<Map />
,<Scene />
,<WebMap />
, and<WebScene />
) to get you started using the ArcGIS API for JavaScript in your React application. - react-sceneview - A simple Esri SceneView react component that builds on the ArcGIS API for JavaScript.
- 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.
- 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.
- arcgis-arcade-playground - Try the portable scripting language for creating ArcGIS custom visualizations and labeling expressions.
- 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.
- 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.
- 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.
- 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 JavaScript
geometryEngine
- Works for browsers and Node.js. - ArcGIS API for Python
arcgis.geometry
- ArcGIS Runtime API for .NET
GeometryEngine
- ArcGIS Runtime API for Android
GeometryEngine
- ArcGIS Runtime API for iOS
AGSGeometryEngine
- ArcGIS Runtime API for Java
GeometryEngine
- ArcGIS Runtime API for Qt
GeometryEngine
- ArcGIS API for JavaScript
- Spatial analysis service - Process spatial datasets to discover relationships and patterns.
- Turf.js - Geospatial analysis for browsers and Node.js.
- 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.
- @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.
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:
- Check the contributing guidelines for this repo.
- Take a look at previously logged issues.
For more information please see our guidelines for contributing.
Licensing
Copyright 2016 Esri
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
A copy of the license is available in the repository's license.txt file.