Getting started
How do I get started building apps with the ArcGIS Maps SDK for JavaScript?
Refer to the Get started guide topic to learn how to install and set up the SDK. There are a variety of resources for coming up to speed on building apps with the SDK. For example:
- Try some of the 10-minute tutorials
- Play around with SDK samples
- Watch ArcGIS Maps SDK for JavaScript: Getting Started with Web Development, ArcGIS Maps SDK for JavaScript: Programming Patterns and API Fundamentals, and explore other presentations on the JavaScript Maps SDK
What are some helpful resources for learning JavaScript?
There are many great, free resources out there for learning JavaScript. Some of our favorites are Codecademy, Free Code Camp, and MDN JavaScript tutorials.
Can I use slots to add custom content to map components?
No, however slots are on the roadmap. To add custom markup content, it is recommended to use the arcgis-placement component.
Can I use the ArcGIS Maps SDK for JavaScript with frameworks (e.g. React, Angular)?
Yes, the SDK's ES modules and components are compatible with the latest versions of most modern frameworks and build tools such as Rollup, webpack and esbuild. For more information, see the Getting started with npm guide page. If you are having issues with the ES modules when using them within frameworks or build tools, start by reviewing our Troubleshooting Guide. To ask questions or report issues use the Esri Community site. Configuration and troubleshooting questions about frameworks and bundlers should be directed to their respective repositories and communities.
Is there a limit to the number of map and scene views a user can open?
Yes, browsers impose a limit on the number of WebGL2 contexts per window (including all tabs). It is typically between 8 and 16, depending on the device. Each MapView or SceneView uses one WebGL2 context. When too many contexts are created and this limit is exceeded, the browser will close the oldest context and log a console warning: "Too many active WebGL contexts. Oldest context will be lost." For example, if your application creates 17 views, the view with the oldest context will stop rendering.
Recommended actions:
- Dashboard-style applications need to set a maximum number of views that can be created.
- Ensure users are aware of this limit.
Am I allowed to modify the ArcGIS Maps SDK for JavaScript?
No. The code for the ArcGIS Maps SDK for JavaScript cannot be modified. See the terms of use for more information.
Does the ArcGIS Maps SDK for JavaScript support all Content Security Policy (CSP) directives?
No. Most CSP directives are supported and certified within the ArcGIS Maps SDK for JavaScript. The SDK's 3D functionality, in addition to the projection engine, makes use of WebAssembly (wasm). Wasm requires unsafe-eval
or wasm-unsafe-eval
in the script-src
directive. Adding unsafe-eval
in CSP goes against one of the main protections that it is supposed to provide.
Working in 3D
What is the best way to come up to speed on building 3D web apps?
For learning about 3D basics in the JavaScript Maps SDK, check out the 3D Visualization with the ArcGIS Maps SDK for JavaScript Developer Summit technical session video. This session will walk you through some core concepts for setting up a 3D application, and then will demonstrate different ways you can visualize 3D data. To learn more about 3D visualization, check out these guide pages. There are also several 10 minute, step-by-step coding tutorials and samples: Display a scene tutorial and SceneView samples.
Does 3D run on the browser on my phone?
Yes, the JavaScript Maps SDK works with 3D scenes in the browser on your phone without a plugin. All you need is a URL to your app to interact with your data in 3D. Here’s a helpful video on building progressive web applications with the SDK. And here is a blog discussing an interesting example of 3D web mapping on mobile devices. For additional information, see the Hardware Requirements page.
Where can I learn about and find data for 3D web apps?
Working in 3D, you can incorporate real-world elements with your content such as variations in terrain and realistic rendering of trees, buildings, and subsurface geology. Learn about the different types of scene layers for displaying and analyzing 3D data with the JavaScript Maps SDK. You can also browse for ready-made example 3D scenes in the ArcGIS Living Atlas. There is a 3D Workflows for the Web technical session video where you learn about building sophisticated 3D apps that leverage modern browser technology to render your 2D features with 3D symbology.
Are ES modules available via the ArcGIS CDN?
Yes, however using the ES modules via CDN is only recommended for testing and prototyping. The ArcGIS ESM CDN should not be used in production applications. An example is available in the jsapi-resources GitHub repository. For the best performance, use the SDK's npm packages and build your application locally.
Can I host the AMD modules locally?
In some cases, you may need to use a locally hosted version of the AMD modules via ArcGIS CDN. An example of this is when you are working in a restricted network environment with no internet access. You can also download and install the documentation which includes the API Reference, tutorials, and samples. The documentation available for download is a snapshot from the release date of version 4.31 and will not include the latest sample updates, documentation fixes, etc.
- To download the ArcGIS Maps SDK for JavaScript and its documentation, navigate to the ArcGIS Maps SDK for JavaScript download page.
Versioning and change management
What is the planned release schedule for future JavaScript Maps SDK releases?
Version 4.32 is planned for February 2025, and version 4.33 is planned for June 2025.
How are breaking changes managed?
Before upgrading to a newer version of the SDK, we recommend thoroughly reviewing the latest breaking changes section of the release notes. Please refer to the Breaking changes guide topic for a complete list of breaking changes across all releases of the JavaScript Maps SDK. Here are our general guidelines for introducing breaking changes:
- Major breaking changes are phased in over three or more releases. An example of this was the switch to WebGL-only rendering. The first release offers the functionality as opt-in. In the second release, the functionality is on by default with an opt-out option. Then, after the third release the functionality is removed.
- Minor breaking changes, such as a property that was renamed, are phased in over two or more releases. The first release provides a console message and documentation update. After two or more releases, the functionality is removed.
While we follow these guidelines as much as possible, there are infrequent circumstances when we will introduce changes without prior notice. For example, breaking changes related to browser security updates. Another example could be changes required in order to introduce a new feature: in this scenario we will weigh delaying the release of the feature against the downside of introducing a breaking change without notice.
What does the beta tag mean?
Production releases of the ArcGIS Maps SDK for JavaScript sometimes have one or more capabilities that are released with a beta label. If you try out a feature in beta and it meets your app's requirements, you can use it in your app. Here is what the beta label means:
- We are interested in gathering feedback with respect to ease of use of the API and whether the functionality adequately meets developer use-cases.
- In some cases, aspects of the capability haven't been implemented yet, for example it might not support all layer types yet. In those cases, limitations will be noted in the API reference.
- Beta functionality is tested but still provisional. The API, behavior and end-user experience might change based on feedback or an improved design.
- Configuration for some beta capabilities may not be saved to web maps and web scenes.
- If you later decide to upgrade your application to a new SDK version, there might be code changes required in order for the capability to continue to work properly (due to # 3 above).
- Esri's standard policies for beta software can be found in the Master Agreement.
Is the upcoming version of the SDK available for testing?
Yes, the next
version of the SDK is available for trying out new features and performing regression testing. For more information visit https://github.com/Esri/feedback-js-api-next.
ArcGIS Enterprise support
Which versions of ArcGIS Enterprise does the JavaScript Maps SDK work with?
The ArcGIS Maps SDK for JavaScript works with supported versions of ArcGIS Enterprise - see the Product Life Cycle support page. For example, ArcGIS 10.6.1 was retired on January 1, 2024. Non-supported versions might still work to different degrees, but are not being tested (or supported) with the SDK.
Migrating from 3.x
What is the status of ArcGIS API 3.x for JavaScript?
Esri's legacy JavaScript API, version 3.x retired on July 1, 2024. See the ArcGIS API for JavaScript, Version 3.x Retirement blog for more information.
What is the best process to migrate from version 3.x to 4.x?
In 4.x, there are significant improvements to the object model. The cleanest approach is to re-write apps from scratch when building with the JavaScript Maps SDK. For more information, see Migrating from 3.x to 4.31 or the functionality matrix.