Frequently Asked Questions
Refer to the Get started guide topic to learn how to install and set up the API. There are a variety of resources for coming up to speed on building apps with the API. For example:
- Try some of the 10-minute tutorials
- Play around with API samples
Should I use AMD or ES modules?
The API is available as AMD and ES modules. To decide what's best for you, see the Introduction to tooling guide page.
wasm-unsafe-eval in the
script-src directive. If using
wasm-unsafe-eval, note that it is not supported in older versions of Safari (<16). 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 4.x API, check out the Fundamentals for Building 3D Web Apps Developer Summit technical session video. It provides an overview of the 3D platform, core concepts, key API functionality, data and more. 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 4.x API 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 4.x API. And here is a blog discussing an interesting example of 3D web mapping on mobile devices. The Hardware Requirements page has more information as well as a list of supported mobile devices.
Where can I learn about using BIM?
There are multiple resources related to using BIM, or Building Information Modeling, data with the 4.x API including videos, blog posts and samples. Here are two DevSummit technical session videos: Create 3D Planning Web Apps using BIM and Editing Capabilities and Roadmap for BIM-GIS Interoperability. There is also blog post that discusses Common Patterns for BIM and GIS Integration. The blog covers drivers for integration, patterns for data interchange and more. There are also several API samples.
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 4.x API. You can also browse for ready-made example 3D scenes in the ArcGIS Living Atlas. There is a Practical Guide for Building a 3D Web App from 2D data technical session video where you learn about building sophisticated 3D apps that leverage modern browser technology to render your 2D features with 3D symbology.
Versioning and change management
What is the planned release schedule for future 4.x releases?
Version 4.27 is planned for June 2023, and version 4.28 is planned for fall/winter 2023.
How are breaking changes managed?
Before upgrading to a newer version of the API, 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 4x API. 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?
- 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. 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 API 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 at https://www.esri.com/content/dam/esrisites/en-us/media/legal/ma-translations/english.pdf.
ArcGIS Enterprise support
Which versions of ArcGIS Enterprise does 4.x work with?
Migrating from 3.x
We are continuing to release version 3.x with bug fixes only (essentially maintenance mode). See the Product Life Cycle support page for more information.
Our premier web mapping API, version 4.x, offers optimized performance and an extensive suite of capabilities far beyond what 3.x provides. Developers should use version 4.x for all new web apps and evaluate whether it makes sense to migrate existing 3.x-based applications to 4.x based on app requirements and strategy.
What is the best process to migrate from version 3.x to version 4.x?
There have been significant changes to the object model in order to enable higher productivity and effectiveness. Due to these major changes in the API, the cleanest approach is to re-write apps from scratch when building with the 4.x API. For more information, see Migrating from 3.x to 4.26 or the functionality matrix.