Release notes for 4.26
Features can be highlighted with different symbols per layer
At this release, features can be highlighted with different symbols per layer in a 2D MapView. This can be done by setting the highlightOptions on the corresponding layerView. In a future release, we will add support for this in a 3D SceneView and explore additional highlight options to make the highlighted features stand out from the rest of the map.
Apply a background and border to your FeatureLayer labels
We enhanced the TextSymbol class to allow backgroundColor, borderLineColor, and borderLineSize properties to now work with FeatureLayer instead of just MapImageLayer. This can be very useful for labeling, as shown in the updated sample below.
Clustering and binning maximum scale
You can now disable clustering and binning visualizations when the user zooms beyond a given
max. This is useful for apps where the user is required to zoom to a large scale where the clustering or binning configuration is no longer needed and individual point locations should display.
The Point clustering - generate suggested configuration sample demonstrates this behavior.
Sort features drawn in view based on unique values
UniqueValueRenderer added the orderByClassesEnabled property. When enabled, this sorts the order of features in the view so they match the order defined for the unique values in the legend.
This is useful for cases where you want to display higher priority features on top of features with a lower priority. The Sort features by legend order sample demonstrates this by rendering car crash locations in three categories, crashes that resulted in:
- no injuries or fatalities
Without controlling how these features are drawn in the view, the more important features (fatalities) would be mostly hidden by features with a lesser priority. By setting
unique, the view more appropriately renders the higher priority features on top of lesser priority features.
|Default order||Order by classes enabled|
Snapping in 3D measurement tools
Accurately measure lengths and areas of, for example, building roofs and facades. Direct line and area measurements now snap to features and 3D objects in your scene. Snapping is enabled by default and can be toggled by holding the Control key.
All tools that rely on snapping in 3D scenes benefit from improved hints, making it easier to snap to draped features or complex BIM data.
Explore the buildings of San Francisco using the updated Measurement in 3D sample.
Voxel layer popups and interactive slice
Explore the properties of individual voxels by enabling popups on your voxel layer. The popup shows attributes value, variable and voxel position, and if available also depth and time. Added support for the Slice widget allows you to interactively look inside your dataset and select any voxel.
Try out the new web-based VoxelLayer capabilities with a range of new samples.
Experience improved terrain with enhanced shading and increased resolution for all quality modes. Besides additional contrast, the shading added in 4.25 has been intensified by visualizing the terrain with more detailed geometry. This additional information on the client comes without performance impact thanks to various optimizations in the terrain rendering.
MediaLayer authoring experience
We added support for an authoring experience for MediaLayer in the Map Viewer, allowing you to add media to your map, adjust the control points, resize your image, and save it to a WebMap.
Process pixels with client-side raster functions
ImageryTileLayer now supports client-side raster functions (released in beta). The client-side raster functions are operations that apply processing directly to the source image pixels. The calculations are only applied to the source pixels that are visible in the map as you pan and zoom within the map. In upcoming releases, we will continue to add more functions and make the public API easier to work with.
The following sample demonstrates how you can use a client-side
NDVI raster function to quantify vegetation greenness and use the Colormap raster function to display the result.
ImageryLayer now supports various mensuration operations. You can call measureAreaAndPerimeter(), measureDistanceAndAngle(), measureHeight(), and measurePointOrCentroid() methods to take various measurements on an image service.
We added many new properties and methods this release that should improve your experience working with StreamLayers:
- The sendMessageToSocket() method can be used to send a message over the websocket to the server.
- The StreamLayerView.message-received event fires when the layer view receives a new message sent to the websocket connection.
- The pause() and resume() methods on StreamLayerView can be used to pause and resume the connection.
Users now can create a client-side StreamLayer by taking advantage of the sendMessageToClient() method. To create a client-side layer, one must provide all properties required to create the StreamLayer schema. Then, call
send to add, remove, or update features.
Check out this sample for an example.
KnowledgeGraphLayer (released in beta) is a new layer type for visualizing data from a knowledgeGraphService on a map. A KnowledgeGraphLayer is a composite layer with sublayers for spatial and non-spatial entity and relationship types. Spatial sublayers can be used with renderers, have configured popups and used in other spatial analysis. A KnowledgeGraphLayer can only be added to an instance of a map. Currently, it cannot be saved as an ArcGIS Enterprise Portal item, used in an web map or added as a layer in Map Viewer.
SubtypeGroupLayer rotation visual variables
SubtypeGroupLayer added support for the RotationVariable visual variable. Support for ColorVariable, OpacityVariable, and SizeVariable will be coming at a future release.
Select feature in related records popup
Select feature action button within RelationshipContent provides a way to highlight and zoom to the selected related feature while also opening the related feature's popup.
Popup chart colors reflect renderer colors
Popup chart colors now automatically respect feature reduction renderer colors when visualizing data with specific renderers. This is supported for binning with the predominance, dot density, and the pie chart renderers, along with clustering with the pie chart renderer.
The Sketch widget added a duplicate() method that duplicates graphic(s) in an update workflow and adds the new graphic copies to the widget's GraphicsLayer. The widget displays a duplicate (or copy) button when a single or multiple graphics are selected and in an update workflow. The Graphic attributes, geometry, and symbol properties are copied over to the new graphics.
The Editor was updated to support selecting features that do not have
update capabilities, e.g.
allowed. Prior to this release, the UI's
select tool would not become enabled to support feature selection, even if the underlying data supported these operations. This recent update was necessary to be able to select and delete a feature. In addition, this update was needed for workflows where editing or creating attachments was a requirement.
The FeatureForm widget was updated to make use of Calcite's Date Picker and Time Picker components.
The field alias is no longer displayed in the Legend widget by default for UniqueValueRenderer.
Set the legendOptions
title to the field alias if needed.
The UtilityNetwork added the ability to validate a network's topology with the synchronous validateTopology() and asynchronous submitTopologyValidationJob() methods.
The new UtilityNetworkAssociations widget allows users to query and visualize the associations of a utility network within the current extent of the view. The widget supports viewing connectivity and structural attachment associations.
By default, a user can manually refresh the associations after an extent change, but they can also be refreshed automatically when a user pans or zooms the map by setting the autoRefreshAssociations property to
To allow users to adjust the number of maxAllowableAssociations, you can display the max allowable associations slider within the widget.
If the number of associations queries exceeds the value set for maxAllowableAssociations, then the server will not return any associations.
At this release, we made the following enhancements to CIMSymbol:
- Introduced support for CIMGeometricEffectDonut, which creates a dynamic polygon ring of a specified width in relation to the outline of polygon features. The example below uses a CIMPolygonSymbol with the donut effect to visualize the boundary of Grand Canyon National Park.
- Added support for animated picture markers placed within a polygon
- Added support for primitive overrides on marker placement properties
- Fixed bugs and improved performance of other geometric effects
Print non-spatial tables
We added a new property to the PrintTemplate to allow users to print tables using the print
and PrintViewModel.print() methods. When
true, tables will be
included in the printout request. A table is a non-spatial dataset in a feature service or map service. This is only applicable
to print templates that are configured to support tables.
Downloadable samples using ES modules
Added classes, properties, methods, events
Deprecated classes, properties, methods, events
View Popup autocasting deprecation
In a continuous effort to optimize the performance of the API, more specifically the load time, the decision was made to stop bundling the Popup with the MapView and SceneView. The Popup widget receives new features regularly, such as when browsing related records. Each new feature added to the popup widget increases the amount of built code and size of the widget that is being sent to the web browser. For example, the Popup module, which is bundled with the MapView, represents around 50% of the size of the bundle.
In a future release, the Popup widget loading will be deferred until the view is ready and will only be loaded if there are layers with a popup configured since it is only useful once content is displayed on the view. This will not disturb the user experience and the popup will still show up when the end user clicks on popup enabled content.
If you are interested in testing this optimization, make sure to check out the early access release description in the CHANGELOG, where we will provide more details and strategies to upgrade your code as we get closer to the next release.
- ImageryTileLayer's default title is now created from its URL like other layers instead of the name property from the service's root resource.
- Setting Editor.layerInfos
falsewill not disable the ability to
deletefeatures. Prior to this release, setting
falsewould prevent both updates and deletes on a feature. Now if deletes are needed, it is necessary to also set
- The default value of VoxelIsosurface.colorLocked changed from
- The Editor widget's UI has been slightly updated to show snapping settings using an accordion component rather than a popover.
globalproperty of GraphSearchStreaming was replaced with
I d s Filter
- The networkService.fetchServiceDescription() method now returns an object with a
defaultproperty of type TravelMode instead of type string.
- Retired WebGL1: Loading a SceneView now requires a device which supports WebGL2.
The following classes, methods, properties and events have been deprecated for at least 2 releases and have now been removed from the API:
|Class/Property/Method/Event||Alternate option||Version deprecated|
Knowledge Graph beta changes
The knowledgeGraphService remains in beta. Capabilities in version 4.26 are only supported against ArcGIS Enterprise 11.1 and later. To access a knowledgeGraphService on ArcGIS Enterprise 11.0 and earlier, use version 4.25.
In 4.26/Enterprise 11.1, the data model and service definition of knowledge graph services were updated.
With the exception of
Graph, this change will not break client-side code written using the methods for knowledgeGraphService.
The table below lists the knowledge graph properties that have been removed at this release:
|fetchKnowledgeGraph() returns the data model|
Please refer to the Breaking changes guide topic for a complete list of breaking changes across all releases of the 4.x API.
Bug fixes and enhancements
- BUG-000135050: Fixed an issue where Popups would not display attachments when sublayers on a MapImageLayers had AttachmentsContent configured. This only applies to map services on ArcGIS Enterprise version 10.8.1 and above.
- BUG-000146636: Fixed an issue where using the Zoom To action in popups would zoom passed the selected geometry's extent.
- BUG-000153564: Fixed an issue where VectorTileLayer intermittently stopped drawing some tiles at certain zoom levels.
- BUG-000153928: Fixed an issue where Area Measurement failed if the second point was added via a double-click instead of single click.
- BUG-000154063: Fixed an issue in the FeatureTable widget where edits would periodically not save correctly after quickly scrolling through table records.
- BUG-000154321: Fixed an issue where LineOfSightViewModel
targetsreturned z-values in varying elevation modes. Now all z-positions are returned as absolute values.
- BUG-000154335: Fixed an issue in the FeatureTable widget where only the default fields were displayed for SceneLayer with associated FeatureLayer.
- BUG-000154436: Fixed an issue in the FeatureTable widget where hiding a child column contained within a grouped column would not work correctly. This has been fixed and these contained columns can be hidden when programmatically setting their visibility to
- BUG-000154467: Fixed an issue where null or invalid values were returned in form expressions when the calculation was dependent on the field currently being calculated.
- BUG-000154629: Fixed an issue where DynamicLayer was not honoring transparency.
- BUG-000154645: Fixed an issue where calling FeatureLayer.save() resulted in bad JSON if the layer had a renderer with UniqueValueGroups containing values with the less-than sign (<) or the greater-than sign (>).
- BUG-000151127: Fixed an issue where a WebScene with 3D symbols does not display if the portal URL is set to a different portal.
- Esri Community - 1231460: Fixed an issue where users aren't able to set a container coming from another context (iframe, window).
- Esri Community - 1240962: Fixed a regression in WebTileLayer where
fetchcould not be overridden when creating a custom subclass.
- Esri Community - 1241411: Fixed an issue where an AbortError thrown when deleting a layer after changing its definitionExpression.
- Esri Community - 1242600: Fixed an issue where the MapView.takeScreenshot() was not taking high resolution screenshots.
- Esri Community - 1248727: Fixed a Dutch translation issue with the Search widget results popup title.
- Esri Community - 1250753: Fixed an issue where StreamLayer custom parameters were not updated at runtime.
- Fixed an issue where an ImageryLayer was displaying a white background around the exported image causing layers underneath to not be visible.
- Fixed an issue where MediaContent charts in a popup displaying information from a relationship were only showing one related feature.
- Fixed an issue where MediaContent charts in a popup were not drawing when displaying information from a related table.
- Fixed an issue where two
queryrequests were sent to the service when selecting a feature that had AttachmentsContent in its Popup.
- ENH-000121116: Enhanced the TextSymbol class to allow backgroundColor, borderLineColor, and borderLineSize properties to now work with FeatureLayer.
- ENH-000152699: Added support for ImageryTileLayer referencing a tiled image services with LODs that are not power of two.
- ENH-000155208: Enhanced TileLayer to highlight the selected feature when displaying its Popup.
- Enhanced the Directions widget with improved summary and per-turn distances.
- MediaLayer.source can now be an individual ImageElement or VideoElement. The source can still be a collection of image and video elements.
- Enhanced the SpatialReference by adding unit to return the unit of measure for the spatial reference and metersPerUnit to easily convert from one spatial reference unit to another.
- Version 4.25 - November 2022
- Version 4.24 - June 2022
- Version 4.23 - March 2022
- Version 4.22 - December 2021
- Version 4.21 - September 2021
- Version 4.20 - June 2021
- Version 4.19 - April 2021
- Version 4.18 - December 2020
- Version 4.17 - October 2020
- Version 4.16 - July 2020
- Version 4.15 - April 2020
- Version 4.14 - December 2019
- Version 4.13 - October 2019
- Version 4.12 - June 2019
- Version 4.11 - March 2019
- Version 4.10 - December 2018
- Version 4.9 - September 2018
- Version 4.8 - July 2018
- Version 4.7 - April 2018
- Version 4.6 - December 2017
- Version 4.5 - September 2017
- Version 4.4 - July 2017
- Version 4.3 - March 2017
- Version 4.2 - December 2016
- Version 4.1 - September 2016
- Version 4.0 - May 2016