December 2020
ES modules (beta)
We’ve released a beta build for ES modules to make it easier to integrate the API with third party frameworks and build tools. They are available for installation as a new NPM package @arcgis/core. Once installed, you can use native imports like this:
import WebMap from '@arcgis/core/WebMap';
import MapView from '@arcgis/core/views/MapView';
The benefits of this approach include:
- Simplified code
- Native support in the browser
- Minimal configuration
- Seamless integration with all modern frameworks and build tools.
Visit Introduction to tooling to learn how to use the new modules and learn whether you should migrate. We also provide sample apps that demonstrate the basic concepts.
Elevation profile widget (beta)
Create elevation profile charts using the ElevationProfile widget, available in both MapView and SceneView. Interactively draw or select existing lines in your map or scene to compare heights for terrain but also 3D objects such as buildings. The chart is computed using the Ground's elevation and provides additional statistics along the line.
Query clustered features
You can query features from clusters with the aggregateIds option on the Query object. This gives you the flexibility to do the following:
Display the visible extent of a cluster's features.
Calculate and display the convex hull for clustered features.
Display the features belonging to a cluster.
Query statistics for clustered features.
3D updates
Context-aware navigation
Interactive zooming, panning and rotating in underground scenes or viewpoints with large tilt has greatly improved. A new context-aware navigation takes visible objects into account to better predict an area of interest. You will notice a steadier navigation experience, especially when moving around or towards data visualizing subsurface pipelines and earthquakes for example, but also thin structures such as vegetation or power lines made up of point cloud data.
Scene layer attributes editing
Update the attributes of a 3D object SceneLayer using existing Editor widget workflows or a new method apply
. Edits are applied to the associated feature layer but taken into account and rendered by the API until the I3S cache is updated.
See how updates to a scene layer representing apartments are immediately reflected in a new attribute editing sample.
Self snapping
The latest release introduces beta support for self snapping when creating or updating line- and polygon features in 3D. Interactively create geometries that have parallel lines and right angles which are essential for features representing building footprints or line networks. You can enable self snapping through a new property Sketch
and toggle it during a draw operation.
Try out snapping in the Sketch in 3D and Edit features in 3D samples.
Order-Independent transparency
Multiple overlapping transparent features are rendered independently of the camera position. The new order-independent transparency (OIT) blends all transparent surfaces together, where the previous approach assured that the front-most is rendered. Visualizing large volumetric symbology covering other transparent features in your scene, but also semi-transparent 3D WebStyles or transparent icon symbology like Firefly style benefit from the visual improvements.
Mars and Moon support
Skip the seven month journey to Mars by visiting our red neighbor with the ArcGIS Maps SDK for JavaScript. The latest release adds experimental support for Moon and Mars coordinate systems to SceneView. Visualize imagery- and elevation layers but also feature layers containing mapped information about the astronomical bodies. Atmosphere and globe diameter are automatically adjusted when loading a layer with a supported Mars or Moon coordinate system.
Custom coordinate systems
Local scenes can now load and visualize more datasets by supporting additional custom coordinate systems defined by a Well-Known Text (WKT) string.
Layer updates
Layer effects
You can now apply Effects to all layers in 2D MapViews. This powerful capability allows you to apply css filter-like functions to layers to enhance the cartographic quality of your maps. This is done by applying the desired effect to the layer's effect
property.
We added support for three new effects: bloom
, drop-shadow
, and blur
.
Since some effects like drop-shadow
and blur
are sensitive to scale, we enhanced the Effect API to make effects scale-dependent. You can set effects at different scales to fine tune the look and feel of the map. Check out the samples that take advantage of this powerful functionality.
In the following screenshot, we see the result of applying drop-shadow
to features that intersect boundaries of London boroughs while applying blur
and brightness
effects to features do not meet from the filter criteria.
Effects could be applied to filtered features via FeatureEffect since version 4.11. FeatureEffect applies effects to features included and excluded from a filter in a LayerView. Version 4.18 ensures the features included in the filter are drawn on top of all excluded features.
LayerView transitions
We continued our work from 4.17 to add default fade-in and out transitions to layer views for the following layers: MapImageLayer, WMSLayer, ImageryLayer, and BaseDynamicLayer. These transitions occur when a user toggles the layer's visibility is on/off, zooms in/out in the view, or changes the layer configuration. This is only supported in 2D MapViews.
VectorTileLayer
We added helper methods that will simplify the process of updating a style loaded with a VectorTileLayer. With these methods, you will be able to add, remove or re-order style layers. You can also modify any of the properties of a style layer with one call, without reloading the layer. Check out the VectorTileLayer - update style layers sample to see this in action.
StreamLayer
StreamLayer can consume custom stream services that are pushed via websocket in 3D SceneView. To do this, set the webSocketUrl property of the StreamLayer to point to your custom service. See the Reference a custom stream service for more information.
We added the updateInterval property to StreamLayer to control the rate features are updated in the layer. This can help improve app performance.
ImageryLayer
We added methods to ImageryLayer for computing statistics and histograms for a given extent. ImageryLayer now has support for identifying content.
Widget updates
Sketch
The graphic selection symbols were enhanced in the Sketch widget for better visualization. The update event's tool
parameter now provides more information when the user selects or deselects graphics using Shift+
. The defaultCreateOptions.mode property is now click
instead of hybrid
to better handle snapping.
The Sketch widget also automatically includes two new selection tools within visibleElements: rectangle-selection
and lasso-selection
. These elements can be removed as needed.
FeatureForm
The FeatureForm widget's UI has been updated when showing grouped fields. If its groupDisplay property is not set to sequential
, the grouped fields now display with the option to collapse. The following shows the difference in UI between 4.17 and 4.18.
4.17 | 4.18 |
---|---|
Popup
A new property, returnGeometry was added to the PopupTemplate and indicates whether to include the feature's geometry for use by the template. This property should be set to true
if you need to access the selected feature's geometry. The geometry should be accessed via the returned graphic from the popup's selectedFeatureWidget. This is needed since the geometry is not automatically queried and returned in the popup's selected feature.
Print
The Print widget was enhanced to support reading custom print templates defined in a portal. To accomplish this we added a new class, CustomTemplate, which defines the custom layout template options used by the Print widget to generate the print page. We also added two new properties to the Print widget: includeDefaultTemplates and portal. If the portal
property is defined, the end-user will see a new Select template
button in the Print widget UI.
Search
We enhanced the Search widget to work with standalone tables associated with a webmap. This allows users to search for specific records, based on a field value, within configured tables. We also added a findTableById() method that returns a table based on the given table ID.
CIM Symbol Builder
We introduced a new app this release - the CIM Symbol Builder! This app provides an environment where you can design CIM symbols with a simple user interface, copy the JSON of the symbol, and use it in a web application built with the ArcGIS Maps SDK for JavaScript.
Smart mapping size themes
We introduced size themes to Smart Mapping size renderer creator functions. You can now create size visualizations with above
, below
, and above-and-below
themes. These themes are well suited for data variables that show a change over time, such as change in population between two years. The above-and-below
theme can help communicate how far above or below a data value is relative to a meaningful inflection point.
Iterate through a collection
You can iterate through the items of a Collection using for...of
. Prior to 4.18, this was not possible. The following patterns are now supported.
// iterate through each item
for (const item of collection) {
//...
}
// create an array from a collection
const array = Array.from(collection);
// create a set from a collection
const set = new Set(...collection);
Prior to 4.18, you had to do the following (these patterns are still supported).
// iteration
collection.forEach((item) => { ... })
// creating an array from a collection
collection.toArray();
// create a set from a collection
const set = new Set();
collection.forEach((item) => set.add(item));
Internationalization
Additional methods were added to the intl
class to aid in creating, registering, and fetching message bundles used for widget strings. This can be helpful for developers needing control over how their custom widgets work with translation strings.
IdentityManager
The IdentityManager modal dialog now captures and traps focus when shown. Prior to this version, no elements would display focused upon opening.
End of IE11/Edge Legacy support
Support for Internet Explorer 11 and Edge Legacy for use with the ArcGIS Maps SDK for JavaScript was deprecated as of version 4.16. Version 4.17 was the last release with support for these browsers. This means that apps built with 4.18 (and beyond) will not function in IE11/Edge Legacy. See our updated System Requirements page and the Why is Esri ending support for Internet Explorer 11? blog to learn more.
Added classes, properties, methods, events
- esri/core/units
- esri/tasks/ImageIdentifyTask
- esri/tasks/support/ImageHistogramParameters
- esri/tasks/support/ImageIdentifyParameters
- esri/tasks/support/ImageIdentifyResult
- esri/webdoc/applicationProperties/SearchTable
- esri/webdoc/applicationProperties/SearchTableField
- esri/widgets/ElevationProfile
- esri/widgets/ElevationProfile/ElevationProfileLine
- esri/widgets/ElevationProfile/ElevationProfileLineGround
- esri/widgets/ElevationProfile/ElevationProfileLineInput
- esri/widgets/ElevationProfile/ElevationProfileLineQuery
- esri/widgets/ElevationProfile/ElevationProfileLineView
- esri/widgets/ElevationProfile/ElevationProfileViewModel
- esri/widgets/Print/CustomTemplate
- esri/widgets/smartMapping/SmartMappingPrimaryHandleSliderViewModel
esri/config
- Added properties: apiKey, assetsPath
esri/identity/
O Auth Info - Added properties: forceUserId, userId
esri/intl
esri/layers/
Feature Layer - Added properties: customParameters, editingEnabled, effect
esri/layers/
Geo RSS Layer - Added properties: effect, legendEnabled
esri/layers/
Group Layer - Added property: effect to
esri/layers/
Group Layer - Added method: findTableById to
esri/layers/
Group Layer
- Added property: effect to
esri/layers/
Imagery Layer - Added property: effect to
esri/layers/
Imagery Layer - Added methods: computeHistograms, computeStatisticsHistograms, identify, queryRasters
- Added property: effect to
esri/layers/
Map Image Layer - Added properties: customParameters, effect
esri/layers/
Scene Layer - Added property: capabilities to
esri/layers/
Scene Layer - Added method: applyEdits to
esri/layers/
Scene Layer
- Added property: capabilities to
esri/layers/
Stream Layer - Added properties: effect, updateInterval
esri/layers/
Tile Layer - Added properties: customParameters, effect
esri/layers/
Vector Tile Layer - Added property: effect to
esri/layers/
Vector Tile Layer - Added methods: deleteStyleLayer, getStyleLayer, getStyleLayerIndex, getStyleLayerVisibility, setStyleLayer, setStyleLayerVisibility
- Added property: effect to
esri/renderers/support/
Authoring Info - Added properties: statistics, univariateSymbolStyle, univariateTheme
esri/
Time Extent esri/widgets/
Bookmarks - Added properties: defaultCreateOptions, defaultEditOptions
esri/widgets/
Bookmarks/ Bookmarks View Model - Added properties: defaultCreateOptions, defaultEditOptions
esri/widgets/
Print - Added properties: includeDefaultTemplates, portal
esri/widgets/
Print/ Print View Model - Added properties: defaultTemplates, effectivePrintServiceUrl, includeDefaultTemplates, portal
- Added method: get to
esri/widgets/
Print/ Print View Model
esri/widgets/smart
Mapping/ Color Size Slider - Added properties: handlesSyncedToPrimary, primaryHandleEnabled
- Added method: updateRenderer to
esri/widgets/smart
Mapping/ Color Size Slider
esri/widgets/smart
Mapping/ Color Size Slider/ Color Size Slider View Model - Added properties: handlesSyncedToPrimary, primaryHandleEnabled
esri/widgets/smart
Mapping/ Size Slider - Added properties: handlesSyncedToPrimary, primaryHandleEnabled
esri/widgets/smart
Mapping/ Size Slider/ Size Slider View Model - Added properties: handlesSyncedToPrimary, primaryHandleEnabled
- Added property:
api
to esri/configKey - Added property:
assets
to esri/configPath - Added property:
is
to esri/GraphicAggregate - Added property:
force
to esri/identity/OAuthInfoUser Id - Added property:
user
to esri/identity/OAuthInfoId - Added property:
effect
to esri/layers/BaseDynamicLayer, esri/layers/BaseTileLayer, esri/layers/BingMapsLayer, esri/layers/CSVLayer, esri/layers/FeatureLayer, esri/layers/GeoJSONLayer, esri/layers/GeoRSSLayer, esri/layers/GraphicsLayer, esri/layers/GroupLayer, esri/layers/ImageryLayer, esri/layers/ImageryTileLayer, esri/layers/KMLLayer, esri/layers/MapImageLayer, esri/layers/MapNotesLayer, esri/layers/OGCFeatureLayer, esri/layers/OpenStreetMapLayer, esri/layers/StreamLayer, esri/layers/TileLayer, esri/layers/VectorTileLayer, esri/layers/WebTileLayer, esri/layers/WMSLayer, esri/layers/WMTSLayer - Added property:
custom
to esri/layers/FeatureLayer, esri/layers/MapImageLayer, esri/layers/TileLayerParameters - Added property:
editing
to esri/layers/FeatureLayerEnabled - Added property:
legend
to esri/layers/GeoRSSLayerEnabled - Added property:
capabilities
to esri/layers/SceneLayer - Added property:
update
to esri/layers/StreamLayerInterval - Added property:
return
to esri/PopupTemplateGeometry - Added property:
statistics
to esri/renderers/support/AuthoringInfo - Added property:
univariate
to esri/renderers/support/AuthoringInfoSymbol Style - Added property:
univariate
to esri/renderers/support/AuthoringInfoTheme - Added property:
aggregate
to esri/tasks/support/QueryIds - Added property:
filter
to esri/views/layers/BuildingComponentSublayerView - Added property:
tables
to esri/webdoc/applicationProperties/Search - Added property:
default
to esri/widgets/Bookmarks, esri/widgets/Bookmarks/BookmarksViewModelCreate Options - Added property:
default
to esri/widgets/Bookmarks, esri/widgets/Bookmarks/BookmarksViewModelEdit Options - Added property:
include
to esri/widgets/Print, esri/widgets/Print/PrintViewModelDefault Templates - Added property:
portal
to esri/widgets/Print, esri/widgets/Print/PrintViewModel - Added property:
default
to esri/widgets/Print/PrintViewModelTemplates - Added property:
effective
to esri/widgets/Print/PrintViewModelPrint Service Url - Added property:
visible
to esri/widgets/SketchElements - Added property:
snapping
to esri/widgets/Sketch/SketchViewModelOptions - Added property:
handles
to esri/widgets/smartMapping/ColorSizeSlider, esri/widgets/smartMapping/ColorSizeSlider/ColorSizeSliderViewModel, esri/widgets/smartMapping/SizeSlider, esri/widgets/smartMapping/SizeSlider/SizeSliderViewModelSynced To Primary - Added property:
primary
to esri/widgets/smartMapping/ColorSizeSlider, esri/widgets/smartMapping/ColorSizeSlider/ColorSizeSliderViewModel, esri/widgets/smartMapping/SizeSlider, esri/widgets/smartMapping/SizeSlider/SizeSliderViewModelHandle Enabled - Added method:
create
to esri/intlJSON Loader - Added method:
fetch
to esri/intlMessage Bundle - Added method:
normalize
to esri/intlMessage Bundle Locale - Added method:
register
to esri/intlMessage Bundle Loader - Added method:
find
to esri/layers/GroupLayer, esri/Map, esri/WebMap, esri/WebSceneTable By Id - Added method:
compute
to esri/layers/ImageryLayerHistograms - Added method:
compute
to esri/layers/ImageryLayerStatistics Histograms - Added method:
identify
to esri/layers/ImageryLayer - Added method:
query
to esri/layers/ImageryLayerRasters - Added method:
apply
to esri/layers/SceneLayerEdits - Added method:
delete
to esri/layers/VectorTileLayerStyle Layer - Added method:
get
to esri/layers/VectorTileLayerStyle Layer - Added method:
get
to esri/layers/VectorTileLayerStyle Layer Index - Added method:
get
to esri/layers/VectorTileLayerStyle Layer Visibility - Added method:
set
to esri/layers/VectorTileLayerStyle Layer - Added method:
set
to esri/layers/VectorTileLayerStyle Layer Visibility - Added method:
expand
to esri/TimeExtentTo - Added method:
union
to esri/TimeExtent - Added method:
get
to esri/widgets/Print/PrintViewModel - Added method:
update
to esri/widgets/smartMapping/ColorSizeSliderRenderer - Added method:
message
to esri/widgets/support/widgetBundle - Added method:
update
to esri/widgets/TimeSlider, esri/widgets/TimeSlider/TimeSliderViewModelWeb Document - Added property:
selection
to FeatureTable.visibleElementsColumn - Added property:
title
to LabelClass.labelExpressionInfo - Added parameter:
color
to createContinuousRenderer() in esri/smartMapping/renderers/univariateColorSizeOptions.is Continuous - Added parameter:
symbol
to createContinuousRenderer() in esri/smartMapping/renderers/univariateColorSizeOptions - Added parameter:
theme
to createAgeRenderer(), createContinuousRenderer(), and createVisualVariables() in esri/smartMapping/renderers/size - Added parameter:
theme
to createContinuousRenderer(), and createVisualVariables() in esri/smartMapping/renderers/univariateColorSize
Deprecated classes, properties, methods, events
The following are deprecated and will be removed in a future release:
- decorators.declared deprecated since version 4.16.
declared()
is not needed to extend Accessor anymore. See Implementing Accessor for updated information. - projection.isSupported deprecated since version 4.18.
- ChartMediaInfoValueSeries.x deprecated since version 4.17. Use value instead.
- ChartMediaInfoValueSeries.y deprecated since version 4.17. Use tooltip instead.
- SizeVariable.expression deprecated since version 4.2. Use SizeVariable.valueExpression instead.
- PathSymbol3DLayer.size deprecated since version 4.12. Use PathSymbol3DLayer.width or PathSymbol3DLayer.height instead.
- symbolPreview deprecated since version 4.11. Use symbolUtils instead.
- symbolPreview.renderPreviewHTML deprecated since version 4.11. Use symbolUtils.renderPreviewHTML instead.
- ImageServiceIdentifyTask deprecated since version 4.18. Use ImageIdentifyTask instead.
- ImageServiceIdentifyParameters deprecated since version 4.18. Use ImageIdentifyParameters instead.
- ImageServiceIdentifyResult deprecated since version 4.18. Use ImageIdentifyResult instead.
- PrintTemplate.preserveScale deprecated since version 4.16. Use PrintTemplate.scalePreserved instead.
- ProjectParameters.outSR deprecated since version 4.4. Use ProjectParameters.outSpatialReference instead.
- Bookmark.extent deprecated since 4.17. Use viewpoint instead.
- AreaMeasurement2DViewModel.clearMeasurement deprecated since version 4.16. Use clear instead.
- AreaMeasurement2DViewModel.newMeasurement deprecated since version 4.16. Use start instead.
- AreaMeasurement3DViewModel.clearMeasurement deprecated since version 4.16. Use clear instead.
- AreaMeasurement3DViewModel.newMeasurement deprecated since version 4.16. Use start instead.
- BasemapLayerList.statusIndicatorsVisible deprecated since version 4.15. Use BasemapLayerList.visibleElements.statusIndicators instead.
- BasemapToggle.titleVisible deprecated since version 4.15. Use BasemapToggle.visibleElements.title instead.
- Bookmarks.bookmarkCreationOptions deprecated since 4.18. Use
default
instead.Create Options - Bookmarks.select-bookmark deprecated since version 4.17. Use bookmark-select instead.
- DirectLineMeasurement3DViewModel.clearMeasurement deprecated since version 4.16. Use clear instead.
- DirectLineMeasurement3DViewModel.newMeasurement deprecated since version 4.16. Use start instead.
- DistanceMeasurement2DViewModel.clearMeasurement deprecated since version 4.16. Use clear instead.
- DistanceMeasurement2DViewModel.newMeasurement deprecated since version 4.16. Use start instead.
- FeatureForm.fieldConfig deprecated since version 4.16. Use FieldElement and/or GroupElement instead.
- FeatureFormViewModel.fieldConfig deprecated since version 4.16. Use FieldElement and/or GroupElement instead.
- FeatureTemplates.filterEnabled deprecated since version 4.15. Use FeatureTemplates.visibleElements.filter instead.
- LayerList.statusIndicatorsVisible deprecated since version 4.15. Use LayerList.visibleElements.statusIndicators instead.
- Popup.featureNavigationEnabled deprecated since version 4.15. Use Popup.visibleElements.featureNavigation instead.
- SliceViewModel.clearSlice deprecated since version 4.16. Use clear instead.
- SliceViewModel.newSlice deprecated since version 4.16. Use start instead.
- Slider.labelsVisible deprecated since version 4.15. Use Slider.visibleElements.labels instead.
- Slider.rangeLabelsVisible deprecated since version 4.15. Use Slider.visibleElements.rangeLabels instead.
- BookmarksViewModel.BookmarkCreationOptions.captureExtent deprecated since version 4.17. Use
capture
instead.Viewpoint - decorators.cast(classFunction) deprecated since version 4.14. Parameter decorators won't be supported by JavaScript decorators.
- LabelClass.labelExpressionInfo.value deprecated since version 4.5. Use expression instead.
- SceneView.constraints.collision deprecated since version 4.8. Use Ground.navigationConstraint instead.
Smart
deprecated since version 4.13. UseMapping.params.basemap view
instead.
Breaking changes
- No support for IE11/Edge Legacy. Support for Internet Explorer 11 and Edge Legacy was deprecated at version 4.16, and ends at version 4.18. See our updated System Requirements page and the Why is Esri ending support for Internet Explorer 11? blog to learn more.
- The default format for the
take
method on MapView and SceneView has changed toScreenshot() png
instead ofjpg
. - The
media
property was removed from OGCFeatureLayer. All requests for metadata and data content will be made with theType "f=json"
url parameter. - FeatureForm.getValues() will now always return an Object with updated attributes. Prior to this, it would return
null
if there was no feature provided. - FeatureForm.getValues() will return
undefined
if there is no existing attribute on the edit feature. This is meant to distinguish from validnull
values. - The FeatureTable widget no longer uses the layer's maxRecordCount to determine pagination size. It automatically defaults to
50
records unless the layer contains less than this. If so, it will take this count and set the pagination to it. - Updated the callback for intl.onLocalChange() to return a LocaleChangeCallback instead of a
Function
. - The default mode for the defaultCreateOptions on the Sketch widget has changed to
click
instead ofhybrid
. - The
Route
property has been removed. It was deprecated as of version 4.11. Use pointBarriers, polygonBarriers, and/or polylineBarriers instead.Parameters.barriers
Please refer to the Breaking changes guide topic for a complete list of breaking changes across all releases of the 4x API.
Bug fixes and enhancements
- BUG-000126854: Fixed an issue where the MapView is panned when trying to move a selected graphic with the Sketch widget.
- BUG-000127699: Fixed an issue where a Graphic with a long TextSymbol or a Multipoint geometry would get cut off when moved across tile boundaries.
- BUG-000129795: Fixed an issue where the
impedance
set in ServiceAreaParameters was not properly passed into theAttribute solve
request.Service Area - BUG-000130487: Fixed an issue when using a Deck.gl layer, and adding padding to the MapView, the trip line and street background of the Deck.gl layer are not properly aligned.
- BUG-000132412: Fixed an issue where a WMTSLayer was rendered with incorrect levels of detail (LOD) after zooming in and out multiple times.
- BUG-000132880: Fixed an issue where visibility layout property of style layers in a VectorTileLayer was not honored when zooming in and out.
- BUG-000133609: Fixed an issue where a WMTSLayer failed to load if the serviceMode was
"
, but was not defined in the constructor.KV P" - BUG-000133696: Fixed an issue where the CSVLayer is converting last column int values to dates when The CSV data file has Windows (CR LF).
- BUG-000133980: Fixed an issue where the Sketch widget update event failed to trigger after deselection of a Graphic.
- BUG-000134238: Fixed an issue where a WMSLayer would get slightly offset if the screen resolution was higher the maxWidth or maxHeight of the layer.
- BUG-000134595: Fixed an issue where HeatmapStatistics fail when using a spatial reference other than Web Mercator (102100).
- BUG-000134662: Fixed an issue where a ImageryTileLayer was displayed in all black or green on some Android mobile browsers.
- BUG-000134722: Fixed an issue where memory usage increasing when constantly adding and deleting features from a FeatureLayer by calling applyEdits.
- BUG-000134757: Fixed an issue with opacity on a polygon MapImageLayer published with marker symbols, after its popup has been opened, panning or zooming will remove the markers.
- BUG-000134784: Fixed an issue where clustering with FeatureReductionCluster differed, depending on the map interaction.
- BUG-000134786: Fixed an issue where SVG symbols were not printed correctly when rendered with UniqueValueRenderer.
- BUG-000134849: Removed unnecessary
bower.json
files from local API build output. - BUG-000135212: Fixed a bug where graphics are displayed in wrong z-order at initial load.
- GEONET-261976: Fixed an issue where near simultaneous calls to FeatureLayer.applyEdits were not working as expected.
- GEONET-622683: Fixed an issue FeatureLayerView.queryExtent is returning 0,0 for xmin and ymin values.
- GEONET-958751: Fixed an issue where the Search widget would throw an error message in the browser console when
Search.location
is set to false.Enabled - GEONET-959033: Fixed the
Invalid time value
error message that gets thrown when there is a date FieldInfo specified at the PopupTemplate and rendered within the popup. - Fixed an issue with the Search widget input boxes with Safari on iOS devices.
- Fixed an issue with the alignment of CoordinateConversion widget components when using right-to-left (RTL).
- Fixed as issue with the labeling deconfliction strategy when using multiple LabelClasses.
- ENH-000124689: The request class is now used for legend graphic requests on WMSLayers to allow for request interception.
- ENH-000134640: The StreamLayer now has updateInterval property that can be used to configure the minimum rate at which the StreamLayer is updated.
- GEONET-418997: Enhanced the KMLLayer.MapImage to display when the spatial reference is not WGS84 (wkid: 4326).
- Added additional options to the
symbol
property of symbolUtils.renderPreviewHTML()Config - Enhanced Popup so that the focus shifts to the first focusable element of the popup.
- Enhanced UniqueValueInfo.value to accept
number
values as unique values in addition to strings. Previously, numbers were autocast tostrings
. - Enhanced accessibility on the LayerList widget when actions are defined.
- Enhanced the Directions widget by cleaning-up the UI graphics for a more consistent experience.
- Features of a SceneLayer - such as buildings and 3D objects - now fade-in while they are being loaded from the service.
- SceneLayer and BuildingSceneLayer popups now show attribute values coming from related feature tables.
- BuildingComponentSublayerView can now apply client-side spatial and attribute filters to individual features of a BIM model.
Additional packages
Version 4.18 of the ArcGIS Maps SDK for JavaScript uses ArcGIS Arcade 1.12 (since 4.18).
How to access the SDK
- The API library is available on both CDN and npm, read more at Get started.
- For supported versions, you can also download both the documentation and the API library. These downloads are typically available 3-4 weeks after release.
Previous releases
- Version 4.30 - June 2024
- Version 4.29 - February 2024
- Version 4.28 - October 2023
- Version 4.27 - June 2023
- Version 4.26 - February 2023
- Version 4.25 - November 2022
- Version 4.24 - June 2022
- Version 4.23 - March 2022
- Version 4.22 - December 2021