Mobile support in 3D
Developers can now build 3D web applications that can be used on modern phones or tablets without having to install an app! See the Hardware Requirements for more details on supported devices. For a smooth mobile experience, we greatly improved performance and stability. For example, scene memory usage is controlled by adjusting the level-of-detail of the data displayed across layers. This behavior can be fine-tuned with the qualityProfile API. Other performance improvements include a reduced memory footprint of Scene Layers, and continuous data loading via web workers.
FeatureLayer performance continues to improve, allowing you to load features more efficiently and navigate the view more seamlessly. FeatureLayerView can now be queried when WebGL is enabled. These queries can be executed for statistics on the client, for example in the Query client-side statistics sample. Additionally, TextSymbols are now supported with FeatureLayers. This includes support for multi-line text.
Edge Rendering for 3D
Bring 3D objects to life with Edge Rendering. Enabling edges will draw the outlines of 3D polygon and mesh geometries, which greatly improves scene contrast and depth perception. Additionally, edges are a great way to style your 3D layers. You can configure the SolidEdges3D with different edge colors and sizes to generate striking visualizations. Or, you can use the SketchEdges3D for a unique, hand-drawn look.
Client-side Projection Engine
From the makers of geometryEngine comes another big, client-side, hit. The client-side projection engine is now available at both 4.7 and 3.24. The projection module provides a way to convert geometries from one spatial reference to another on the client. This makes it easier to reproject your data to be in the same spatial reference as the map or scene without making a call to the server. The browser must support WebAssembly for the client-side engine to work. To see how this is done, check out the 4.x Client-side projection sample, and the 3.x Client-side projection sample.
3D Area Measurement Widget
Measuring areas just got more exciting (and possible) in 3D webapps using the AreaMeasurement3D widget. To see how to use this widget, or the DirectLineMeasurement3D widget, see the Measurement in 3D sample.
Legend Widget Style
Legendary widgets deserve legendary style. The Legend widget now has a style property, which allows you to toggle between two different views of the widget. The
classic style is the default, and represents the time-tested view of the Legend widget. We now support a
card style, which displays widget content in a fresh, updated way.
Speaking of widgets, we also added support for panels in the LayerList widget. This allows you to add custom content to a layer’s list item, including: widgets, text, and DOM elements specific to the application. Users commonly request a convenient way to combine the LayerList with the Legend widget. With this release, you can accomplish this by setting the helper string
legend to the listItem’s panel content. Take a look at this Combine LayerList and Legend widgets sample as an example.
Better Support for ES Promises
This release improves our compatibility with ES Promises. Prior to 4.7, the WebMap, WebScene, MapView, SceneView, Basemap, Ground, Layer, and LayerView classes were not compatible with ES Promises, causing the web browser to go into an infinite loop, making it unresponsive. At this release, we make the API compatible by default. This is a breaking change. Please read this blog post to learn more about how to make your code compatible with these updates.
Better Printing with 3.23
Printing was updated at this release. The URL parser of the PrintTask is more robust to better handle custom printing services. We added the ability to print feature attributes in feature collection layers (even when they are not needed for rendering). We expanded support for printing CJKV characters. We also fixed an issue with printing layers that do not use default symbology, and instead printed “Override” in the legend. Lastly, the most recent version of ArcGIS Enterprise will be able to take advantage of several optimizations we made to the Print API.
Explore the release notes and new samples to learn more about what’s new in the API, such as: Smart Mapping updates, CSVLayer updates, FeatureLayer updates, Widget updates, Draw updates, and more.