February 2023
Features can be highlighted with different symbols per layerAt 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 labelsWe 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 scaleYou can now disable clustering and binning visualizations when the user zooms beyond a given maxScale
. 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 Clustering - generate suggested configuration sample demonstrates this behavior.
Sort features drawn in view based on unique valuesUniqueValueRenderer 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:
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 uniqueValueRenderer.orderByClassesEnabled = true
, the view more appropriately renders the higher priority features on top of lesser priority features.
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 sliceExplore 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.
Improved terrainExperience 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.
Layer updatesWe 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 functionsImageryTileLayer 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.
StreamLayer updatesWe added many new properties and methods this release that should improve your experience working with StreamLayers:
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 sendMessageToClient()
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 variablesSubtypeGroupLayer added support for the RotationVariable visual variable. Support for ColorVariable, OpacityVariable, and SizeVariable will be coming at a future release.
Popup Select feature in related records popupThe new 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 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.
SketchThe 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.
EditorThe Editor was updated to support selecting features that do not have update
capabilities, e.g. allowedWorkflows = ["create", "delete"]
. 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.
Legendtitle
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.
UtilityNetworkAssociations widgetThe 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 true
. 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:
We added a new property to the PrintTemplate to allow users to print tables using the print and PrintViewModel.print() methods. When PrintTemplate.includeTables is 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.
ES module (ESM) samples are being added to the SDK that provide the same functionality as the existing AMD samples. However, the ESM samples use @arcgis/core and are available as a downloadable Vite.js project that can be installed and built locally using NPM. ESM works with most modern JavaScript frameworks and module bundlers without the need for additional loaders or specialized configurations. Visit the Sample page for the latest list.
Added classes, properties, methods, eventsesri/geometry/SpatialReference
esri/layers/StreamLayer
esri/layers/support/SubtypeSublayer
esri/layers/VoxelLayer
esri/rest/knowledgeGraph/DataModel
esri/symbols/support/symbolUtils
esri/views/layers/OGCFeatureLayerView
esri/views/layers/StreamLayerView
esri/views/layers/StreamLayerView
esri/views/layers/StreamLayerView
esri/webmap/Bookmark
attachmentsOnCreateEnabled
and attachmentsOnUpdateEnabled
to Editor.layerInfos.coverageInfo
to esri/layers/WCSLayereffectiveCapabilities
to esri/layers/FeatureLayer, esri/layers/SubtypeGroupLayer - Added property: effectiveEditingEnabled
to esri/layers/FeatureLayer, esri/layers/SubtypeGroupLayer, esri/layers/support/SubtypeSublayerendPoints
to esri/rest/knowledgeGraph/RelationshipTypeerrors
to esri/widgets/BasemapLayerList.visibleElements, esri/widgets/LayerList.visibleElementshighlightOptions
to esri/views/layers/CSVLayerView, esri/views/layers/FeatureLayerView, esri/views/layers/GeoJSONLayerView, esri/views/layers/GraphicsLayerView, esri/views/layers/ImageryLayerView, esri/views/layers/OGCFeatureLayerView, esri/views/layers/StreamLayerView, esri/views/layers/WFSLayerViewhttpStatus
to esri/request.RequestResponseiconClass
to esri/widgets/support/SnappingControlsidsFilter
to esri/rest/knowledgeGraph/GraphSearchStreamingincludeTables
to esri/rest/support/PrintTemplateisOrgItem
to esri/portal/PortalItemmaxScale
to esri/layers/support/FeatureReductionBinning, esri/layers/support/FeatureReductionClusterorderByClassesEnabled
to esri/renderers/UniqueValueRendererprogress
to esri/rest/support/JobInforasterFunction
to esri/layers/ImageryTileLayerrole
to esri/rest/knowledgeGraph/GraphPropertysketchTooltipControls
to esri/widgets/Editor.visibleElementsduplicate
to esri/widgets/Sketch, esri/widgets/Sketch/SketchViewModelfindSublayerForFeature
to esri/layers/SubtypeGroupLayerfromJSON
to esri/webmap/BookmarkloadAll
to esri/layers/SubtypeGroupLayer, esri/layers/TileLayermeasureAreaAndPerimeter
to esri/layers/ImageryLayer, esri/rest/imageServicemeasureDistanceAndAngle
to esri/layers/ImageryLayer, esri/rest/imageServicemeasureHeight
to esri/layers/ImageryLayer, esri/rest/imageServicemeasurePointOrCentroid
to esri/layers/ImageryLayer, esri/rest/imageServicequeryAttachments
to esri/layers/support/Sublayer, esri/layers/support/SubtypeSublayersubmitTopologyValidationJob
to esri/networks/Network, esri/networks/UtilityNetworktoJSON
to esri/webmap/BookmarkvalidateTopology
to esri/networks/Network, esri/networks/UtilityNetworkIn 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.
The following are deprecated from the public TypeScript definitions and will be removed in a future release.
IPromise
deprecated since version 4.25. Use native Promise
instead.*Constructor
deprecated since 4.25. Update usage of __esri.ModuleConstructor
to typeof __esri.Module
, or import
the module from typings and change the type assignment to typeof Module
.updateEnabled
to false
will not disable the ability to delete
features. Prior to this release, setting updateEnabled
to false
would prevent both updates and deletes on a feature. Now if deletes are needed, it is necessary to also set deleteEnabled
to true
.true
to false
.globalIdsFilter
property of GraphSearchStreaming was replaced with idsFilter
.defaultTravelMode
property of type TravelMode instead of type string.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 deprecatedesri/widgets/Slice/SlicePlane
esri/analysis/SlicePlane 4.23 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 GraphSearchStreaming.globalIdsFilter
, 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:
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 enhancementsobserver
and targets
returned z-values in varying elevation modes. Now all z-positions are returned as absolute values.false
.fetchTile()
could not be overridden when creating a custom subclass.queryAttachments
requests were sent to the service when selecting a feature that had AttachmentsContent in its Popup.Version 4.26 of the ArcGIS Maps SDK for JavaScript uses ArcGIS Arcade 1.21 (since 4.26).
Version 4.26 of the ArcGIS Maps SDK for JavaScript uses Calcite Design System, version 1.0.7.
How to access the SDKRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4