Release notes for 4.30

June 2024

Map and coding components are out of beta!

Last October, we introduced our first beta release of pre-built UI components for building web apps with minimal code; consisting of map components, coding components, and—as of February—charts components. With this release, map and coding components are out of beta and are the recommended approach for constructing the user experience in your app.

What are components?

The Maps SDK components are standards-based web components that extend the core API of the JavaScript Maps SDK into reusable custom HTML elements, such as <arcgis-map></arcgis-map>.

Get started learning how to build apps with components using the following new and updated resources:

FeatureTable

FeatureTable brought significant updates and improvements. One of the notable updates is the support for displaying and editing related records. By enabling the relatedRecordsEnabled property and loading the related data in the map, end-users can now see links to related records associated with each feature in a separate column. Editing is also supported if the parent data is editable.

Explore this functionality in this new sample.

FeatureTable relates

Support for virtual columns

Another important update is the addition of support for virtual or custom columns. These columns are not tied to specific fields in a layer, therefore allowing the ability to define custom content and formatting. This feature provides flexibility in displaying various types of data, adding custom components, working with calculated expressions and dynamically modifying content based on specific use cases.

See it in action in this sample that displays multiple columns containing various types of custom content. FeatureTable custom content

The FeatureTable custom content sample contains an ActionColumn which provides customized behavior based on defined functionality. In addition to this sample, the FeatureTable row highlights sample also shows this functionality.

FeatureTable action column

Support for dynamic cell content

Support for dynamically manipulating cell content was also added in this release. Developers now have the ability to customize or format a cell’s value, in addition to the title and description displayed within the table’s header. Updating cell content can be accomplished using the new formatFunction property on either the Column or FieldColumn. The title and description properties now also take a formatFunction. This property can return a string, number, or HTML element, (e.g. a Calcite component).

Explore this functionality in custom content sample as well as the FeatureTable with related records sample. The second sample shows how to set a custom function for the table's title.

Improved responsiveness

Focus was also put towards improving the table's load time and responsiveness. There is now more control over column sizing and responsiveness with properties like autoWidth, flexGrow, and width. Additionally, icons can be added to the column headers, and certain columns like ActionColumns and RelationshipColumns are automatically frozen to the end of the table.

Explore this functionality in this new sample. This sample makes use of autoWidth on each of the table's columns. An additional key icon was also added for the table's relationship key field.

Better support for selection and highlight interaction

The FeatureTable also introduced enhanced selection and highlight interaction. Properties like rowHighlightIds, objectIds, filterBySelectionEnabled, along with events such cell-click, cell-keydown, cell-pointerover, provide better control over feature selection and interaction in the table and the view. Explore this functionality in this new sample.

FeatureTable row highlights

Update to Calcite components

Lastly, all visible elements in the table have been replaced with Calcite components, resulting in a more modern and customizable interface that aligns with other areas of the JavaScript Maps SDK.

3D updates

Interactive viewshed analysis

Evaluate visible areas from a real estate property or visibility of important landmarks using the new viewshed analysis. Interactively place an observer and a target to see the client-side analysis continuously update in the scene. The field of view angles can be adjusted to create view corridors or domes. These properties can also be set programmatically to place and update viewsheds.

Explore the visibilities in 3D basemaps in this new sample.

Viewshed analysis

VectorTileLayer labels oriented in SceneView

Labels and symbols of a VectorTileLayer are oriented according to the camera heading to make them more readable. There are two cases. Labels for streets, rivers and mountain ranges are rendered along a line and are flipped depending on the camera heading. Other labels and symbols are rotated to keep them upright in the view when the camera heading changes.

Label orientation

Time support in 3D

Visualize progress over time using the TimeSlider in a SceneView. 3D object, point and voxel scene layers are now time aware and are filtered according to the view.timeExtent. Using the new visibilityTimeExtent layer property, you can also set time for an entire layer. You can use this for example to show a sequence of captured reality mesh layers over time.

The new sample shows how the SceneLayer's features get filtered with the TimeSlider.

layers-scenelayer-time

For VoxelLayer the timeInfo property contains stops and a fullTimeExtent that can be used with the TimeSlider.

The new sample shows how to use the VoxelLayer's timeInfo with the TimeSlider.

layers-voxel-time

Time-aware configurations such as view.timeExtent and useViewTime are persisted in the web scene and are automatically consumed by the TimeSlider. Slides can also store a timeExtent allowing users to jump to specific points in time.

Interactive media layer placement

Align images like the site plan of a building using interactive MediaLayer element placement in your scene. The MediaLayerView supports different tools with varying number of control points and snapping to surrounding 3D objects such as buildings. Media layers can now also be persisted in web scenes, making them available in applications like the Scene Viewer.

Try out the interactive georeferencing in the new media layer sample.

Interactive media layer placement in 3D

Working with 3D models

The Mesh class and meshUtils utilities received various improvements for working with 3D meshes. The new convertVertexSpace utility replaces the georeference and ungeoreference utilities. Use this utility to convert a Mesh to a different vertex space, for example to change the origin of the mesh data or to convert vertex attributes from a relative vertex space to absolute coordinates. Changing the Mesh.transform or the vertex space origin of a mesh geometry in a graphic now automatically updates the display of the mesh in the view quickly when reprojection is not needed. This makes it possible to move and transform mesh graphics at interactive rates even when the mesh geometries are complex.

Similar to importing meshes from glTF (available since version 4.11), it is now possible to export a Mesh instance to the binary glTF format (glb) using Mesh.toBinaryGLTF. You can combine this for example with querying mesh geometries from a SceneLayer to export 3D models.

Uploading of 3D models and editing in SceneLayers is now out of beta in the JavaScript SDK and the Scene Viewer.

Performance improvements

Enhanced FeatureLayer performance: We've optimized the animation process between locations in a MapView. Now, only the feature tiles at the destination viewpoint of the animation are fetched, significantly reducing the number of requests made. For instance, when navigating between bookmarks in California and Oregon, version 4.30 makes over 50% fewer requests compared to version 4.29. This enhancement boosts efficiency and improves the overall user experience.

LayerList: We have made significant improvements to the performance of the LayerList. In version 4.30, rendering the layer list is up to 2.5 times faster compared to version 4.29. Additionally, in our test app containing 165 layers, the frame rates when panning and zooming have increased from around 24 frames per second in version 4.29 to around 45 frames per second in version 4.30.

LayerList performance comparison

CatalogLayer

CatalogLayer enhances collaboration by enabling users to share and access data more efficiently both in 2D MapView and 3D SceneView. It lets you visualize, search, and filter a collection of layers. At first glance it looks like a group layer, but it’s backed by a feature service where each polygon feature on the map represents the footprint of a layer of the catalog. Additionally, it’s possible to preview the layer’s content directly from the catalog.

CatalogLayer makes it simpler for users to find information. Instead of manually gathering and adding each dataset separately in your map, you can create a CatalogLayer, which serves as a centralized reference point for all the data you need. Check out the Intro to CatalogLayer and Explore data in CatalogLayer samples to learn more.

catalog layer

CatalogLayerList

CatalogLayerList provides a way to display and interact with CatalogLayers. It displays a list of layers in the dynamicGroupLayer and allows you to toggle their visibility. The CatalogLayerList has been integrated into the LayerList to display catalog layers with minimal configuration needed. The CatalogLayerList inside of the LayerList can be configured with the catalogOptions and accessed with the new catalogLayerList properties. The CatalogLayerList can also be used independently of the LayerList if that fits the application's needs.

CatalogLayerList

Smart mapping with CatalogFootprintLayer

CatalogFootprintLayer is now supported in all smart mapping renderer creator and statistic functions.

Full motion video support with VideoLayer and VideoPlayer

The new VideoLayer displays prerecorded or live-streamed video feeds from a VideoServer. Application developers using VideoLayer can display the video georeferenced on a map and control the playback with the VideoPlayer. Both are in beta for this release.

The VideoPlayer provides the following capabilities:

  • Control operations (play, pause, seek)
  • Time and duration display
  • Customizable graphics colors
  • Following options (sensor, frame, video)
  • Adjustable speed and quality
  • Access to frame metadata

Reference size

We added a new reference-size theme to the size renderer creator. This is useful when you want to compare the size of features to a reference value, like a data maximum or threshold. It is also a good way to visualize ratios and percentages. It works best for gridded datasets where geometries don't overlap, such as styles for binning, hexbin layers, or any other layer created with data aggregated to tessellated shapes.

reference size

Labeling enhancements

Additional polyline label placement options

We made some labeling enhancements for FeatureLayer labeling and polyline labeling. We added two more placement options to labelPlacement: above-along and below-along. Additional values will continue to be added at future releases.

label placement

Open popup on label click

Users can now open a popup by clicking on a feature's label. The popup will open relative to where the feature or label is clicked.

label with popup

Time extent for layer visibility

The visibilityTimeExtent property specifies a fixed time extent during which a layer should be visible. It can be set on any layer. By establishing a fixed time extent for imagery from particular periods, users gain temporal context, enabling targeted analysis centered on specific time frames or events. In the example below, multiple GraphicsLayers with visibilityTimeExtent defined allow the user to see graphics displaying textual information about the wildfire perimeter as it changes based on the time slider handle positions. Check out the sample to see it in action.

visibility time extent

Oriented imagery

SceneView support

OrientedImageryLayers can be published with a z-value, allowing them to be rendered in SceneView. Users can incorporate OrientedImageryLayers into their chosen WebScene and effectively interact with the OrientedImageryViewer in a 3D scene. Refer to the sample for guidance.

oriented imagery SceneView

Enable popups from the OrientedImageryViewer

Popups can now be enabled for features whose images are displayed in the OrientedImageryViewer through the "Show pop-ups" tool available in the toolbar. This enables users to simultaneously access the popup while examining the image.

oriented imagery show popup

MapView.goTo animation

We have made significant improvements to the animation behavior of MapView.goTo() to enhance the geographic context during transitions between locations on the map. These enhancements also provide developers with greater control over the animation settings.

These improvements include changes to the GoToOptions2D properties:

  • The duration property no longer has a default value. Instead, our algorithm calculates the ideal animation duration based on the distance between the origin and destination, as well as the maxDuration. You can override this by explicitly setting the duration.
  • The maxDuration and speedFactor properties offer greater control over the duration and speed of the animation.
  • Certain animations, particularly if they run over a large area or for a long time, have the potential to be disruptive. The animationMode property determines the policy for potentially disruptive animations. The default value is "auto", which intelligently decides how to animate based on factors such as time, distance, and maxDuration. If the animation would exceed the maxDuration, the map will navigate to the destination instantly. Setting animationMode to "always" ensures that the animation always occurs, even if, for example, it needs to speed up to fit within the maxDuration.

Additionally, we have introduced a new animation style that zooms out and in, creating an arc-like motion. This style provides more geographic context when transitioning between two locations on the map.

These enhancements are also noticeable when navigating to points of interest using Bookmarks or Search.

Component and widget updates

Printing enhancements

Building on the 4.29 printing updates, we made some significant enhancements to the Print widget at this release. Currently in beta, ArcGIS Online users can now use item-based layout templates hosted in ArcGIS Online with a new utility print service. This means that new print layouts can be created in ArcGIS Pro, published to ArcGIS Online, and then printed from ArcGIS Online, all without using ArcGIS Enterprise. Printing with these new templates is available to Professional and Professional Plus ArcGIS Online users. For more information, see User types.

The Print widget's Template button now allows you to open a new menu that lists the available templates with their dimensions to help differentiate between them. This new menu now contains either a list of the layout templates from the Print service (same as 4.28 behavior), or a combined list of portal organization templates (created in the portal organization settings) and item-based layout templates shared to the organization Layout template group.

Next, we enhanced the UI to make it easier and more intuitive to work with. The most noticeable difference is our new Show print area toggle. This long-awaited feature allows users to see precisely where the boundaries of the printed map will be.

Print sample

Additionally, we enhanced our support for printing highlighted features with FeatureLayer. Previously, highlights would print using the default symbology from the Print service. Now, the symbology will honor the highlightOptions on MapView, with two limitations:

  1. HighlightOptions.color is ignored for polygon features with a Print Service earlier than 11.4.0, though it may be used for the highlight symbol's outline if haloColor is not defined.
  2. HighlightOptions.haloColor will be used instead of the color on point features, if it is defined. Otherwise, color will be used.

Lastly, we removed support for printing with a Print Service published from ArcMap. Please use ArcGIS Pro to publish new Print Services.

Improved mobile experience for Expand

Expand was updated to use calcite components internally, providing an improved experience for mobile devices. The "floating" mode now uses the Popover component, and "drawer" mode uses the Sheet component. The default "auto" mode responsively switches between "floating" and "drawer" based on the browser size. The new placement property gives you control over the placement of the popover when expanded.

mode: "floating"mode: "drawer"
expand floating expand drawer

Measurement and snapping

We enhanced AreaMeasurement2D and DistanceMeasurement2D with snapping, which is enabled by default. It can be temporarily disabled by holding the CTRL key.

Measurement

LayerList support for KnowledgeGraphLayer

LayerList now has improved support for KnowledgeGraphLayer. When a knowledge graph layer is present in the map, the layer list will display the knowledge graph layer's tables as an expandable table list. Clicking on the table's list item will open a new panel to show the tables associated with the knowledge graph layer. The list of tables can be configured with the knowledgeGraphOptions property.

layer list with knowledgeGraphTableList

Legend support for definition expressions

Legend now supports definition expressions for layers with unique value renderers when respectLayerDefinitionExpression is set to true. The default is false.

4.294.30
legend with definition expression 4.29 legend with definition expression 4.30

Popup and Features no longer display an "Untitled" label in the resulting list's group heading when selecting multiple map graphics. In addition to no longer showing Untitled for map graphics, it is also possible to hide the group heading by setting the newly-added featureListLayerTitle property to false on either the Popup's visibleElements or Features' visibleElements.

4.294.30
popup untitled label popup no untitled

Directions popups

We enhanced Directions by removing the hardcoded popup information from RouteLayer. When RouteLayer was persisted as a portal item or feature collection, the serialized graphics included popup information. However, there were limitations with this workflow, as some users may not wish to have popups associated with the RouteLayer, or may not want popups to be automatically configured in English.

To add popup information to RouteLayer, we added a popupTemplate property to: DirectionLine, DirectionPoint, PointBarrier, PolygonBarrier, PolylineBarrier, RouteInfo.

Existing RouteLayers published to ArcGIS Online as portal items or feature collections will continue to work as is. However, if an existing RouteLayer is re-solved, then the popup information will be lost unless reapplied by the user.

Editing

Coordinate inputs and improved tooltips

Edit features accurately by typing or copy-pasting pairs of coordinates in the tooltip. This new type of input is available when creating and updating point geometries or the vertices of lines and polygons. Coordinate input also allows precise georeferencing of buildings when uploading or editing mesh geometries. In this case, the tooltip provides additional fields for orientation and scale.

Try georeferencing a building in a new sample:

Coordinate inputs sample

Editing subtypes

Editor and FeatureForm added support for editing FeatureLayers containing subtypes. Whenever the subtypeField is updated and the default attribute values defined by the new subtype are different than the current default values, the form will prompt to “Use default values” or to “Keep current values”. Selecting “Use default values” will apply the default attribute values defined in the new subtype, overriding any current values on those fields. Fields that do not have a default value associated with them in the new subtype will not be modified. Selecting “Keep current values” will preserve all existing attribute values.

subtype-use-default-values-annotations

The image above illustrates the new prompt that appears when a subtypeField value is changed. Additionally, whenever the subtypeField is changed, the field domains will be replaced with the field domains defined on the new subtype.

TextElement support

FeatureForm added support for rendering TextElements. TextElements provide the ability to add custom read-only content to the form without the reliance on a field like the FieldElement. TextElement supports “plain-text” and ”markdown”. The text elements can be configured and saved via the Map Viewer’s authoring experience or programmatically using the API.

text-element

Charts components and Charts model (beta)

All properties of the charts model are now configured using methods. This allows the chart configuration to be updated in real time during development. Some methods are async and must be awaited directly. The full documentation for this can be found under Charts model reference. The full list of chart specifications is also included under Charts components reference for more detailed information on interfaces and typings.

More 2D web styles

We added more than 3,000 2D web styles to the Esri Web Style Symbols (2D) guide. These include symbols that have already been available in ArcGIS Online and ArcGIS Pro's symbology UI such as symbols for government, landscape, buildings, arrows, etc. You can create any of these symbols by referencing the style name and symbol name available by clicking on any of the symbols on the page.

web styles

Revamped Version Management component

The Version Management component UI has been significantly updated to offer users an enhanced experience with two distinct UI options tailored to different needs. The first UI option is streamlined for ease of use, allowing users to change layer versions without the capabilities for more complex actions such as deleting or creating new versions.

basic-version-management-component-ui

The second UI option provides a comprehensive set of features for full version management, including the ability to alter, create, change, and delete versions.

advanced-version-management-component-ui

To improve usability, pagination has been added to the component's UI, and the component can now be used as a dialog. New properties like allow-editing, closeable, page-size, versioningStates, and reference-element have been introduced to enhance functionality and customization. For further details and to explore the component's full capabilities, users are encouraged to visit the Version Management component documentation.

Layer updates

We added support for viewing related records in the Popup for MapImageLayer. When configuring RelationshipContent, the related layer or table must be added to the map. Viewing MapImageLayer related records is only supported for ArcGIS Online and ArcGIS Enterprise version 11.3 or higher map services.

KnowledgeGraphLayer

MapImageLayer and TileLayer - table support

We added table support with the new Sublayer.isTable, MapImageLayer.subtables, and TileLayer.subtables properties. Viewing these tables in the LayerList will be supported at a future release.

Support for reduced motion in 2D MapView

To accommodate users with vestibular motion disorders or individuals who prefer less animation in their applications, we've added support for the prefers-reduced-motion media query in 2D MapViews.

When users have enabled reduced motion or no animations in the operating system or browser, animations will be disabled when navigating the map using MapView.goTo(), or with components or widgets such as Search and Bookmarks. Additionally, panning momentum will also be disabled.

App developers can decide whether or not their app honors these motion preferences with the config.respectPrefersReducedMotion setting. While this option is available, it is not recommended unless your application requires animation.

Arcade updates

The following Arcade updates were made:

Recycle bin support

ArcGIS Online added support for a new recycle bin. When the recycle bin is enabled, deleting an organization's supported item will store it in the recycle bin for 14 days. If the item is still in the recycle bin after 14 days, it will be permanently deleted. The following property and methods are supported:

KnowledgeGraph provenance

KnowledgeGraphService now supports provenance. Provenance tracks where information in the knowledge graph originated. Each provenance record associates the value stored in a property of an entity or a relationship with a specific source. The service definition now indicates if the service supports provenance. The data model lists the provenance properties and streaming queries can now include provenance and return provenance records.

Places icon

The places service recently added support for icon, which determines whether icons are returned and the type of icon to use with a place or category. Possible values are cim, png, and svg. Icons are not returned if the value is null.

Added classes, properties, methods, events

Deprecations

Breaking changes

Components breaking changes

For an improved developer experience (e.g., readability and code writing), Map and Coding components have been updated to use a new event naming pattern, arcgis<nameOfEvent>, instead of arcgis<nameOfComponent><nameofEvent>. For example, the Bookmarks ready event name was changed from arcgisBookmarksReady to arcgisReady. This change does not affect view based components such as arcgis-map and arcgis-scene.

Navigational components, such as Zoom, no longer display by default in the arcgis-map and arcgis-scene components. The only default component in a map or scene will be the attribution. All other components need to be added manually like so:

Use dark colors for code blocksCopy
1
2
3
4
<arcgis-map basemap="dark-gray-vector" center="-90,38" zoom="5">
    <arcgis-zoom position="top-left"></arcgis-zoom>
    <arcgis-home position="top-right"></arcgis-home>
</arcgis-map>

Additional breaking changes

  • For local builds using TypeScript, we are in the process of making the SDK's TypeScript definitions strict null compatible. To complete that process, null/undefined types have been temporarily removed at version 4.30. A potential workaround for specific SDK errors is use a //@ts-expect-error strictNullChecks comment on the preceding line.
  • Earlier versions of the API will not honor the timeExtent of Bookmarks authored at version 4.30 or later due to a WebMap serialization error.
  • FeatureEffect.toJSON() now returns the includedEffect and excludedEffect as an array of objects with type and amount properties. Previously these were string values.
  • For local builds, compatibility with Webpack versions prior to 5.84.0 has been removed since 4.29. Upgrade to 5.84.0 or greater.
  • If you are creating custom classes extending Accessor, following our guide, you need to update your class's constructor to pass the arguments to the super constructor:
    Use dark colors for code blocksCopy
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    @property("MyClass")
    class MyClass extends Accessor {
      constructor(properties: Pick<MyClass, "myString">) {
        // This previously worked
        // super();
    
        // now
        super(properties);
      }
    
      @property()
      myString: string;
    }
    
    const instance = new MyClass({ myString: "test" });
    console.log(instance.myString);
  • The DatePicker and TimePicker have been removed. Use the Input Date Picker and Input Time Picker Calcite components instead.
  • The DirectionPoint.endTimeOffset property was renamed to DirectionPoint.arrivalTimeOffset.
  • There is no support for printing with any Printing Service published with ArcMap. Instead, publish new Print Services with ArcGIS Pro.
  • Updated the options.interval and options.statusCallback parameters' types on waitForJobCompletion. interval is now typed as number and statusCallback is now typed as Function.
  • VersionManagementViewModel changed return types for alterVersion, changeVersion, deleteVersion, createVersion.
  • With the necessary changes needed to move to a more flexible menu system in FeatureTable, the read-only menu property has been removed. Instead, access the menu via FeatureTable.menuConfig which references TableMenuConfig.
  • returnServiceEditsInSourceSR has been removed as a parameter from the FeatureService.applyEdits method.

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/EventAlternate optionVersion deprecated
BookmarksViewModel.abilitiesBookmarksViewModel.capabilities4.27
Editor.layerInfo.allowAttachmentsSet attachmentsOnUpdateEnabled or attachmentsOnCreateEnabled on Editor.LayerInfo4.26
Expand.expandIconClassExpand.expandIcon4.27
Expand.collapseIconClassExpand.collapseIcon4.27
FeatureForm.viewSet FeatureForm.map instead4.27
FeatureTable.clearSelection()Call removeAll() on FeatureTable.highlightIds4.25
FeatureTableViewModel.clearSelection()Call removeAll() on FeatureTableViewModel.highlightIds4.25
FeatureTable.deselectRows()Call remove() or removeMany() on FeatureTable.highlightIds4.25
FeatureTableViewModel.deselectRows()Call remove() or removeMany() on FeatureTableViewModel.highlightIds4.25
FeatureTable.highlightOnRowSelectEnabledhighlightEnabled4.25
FeatureTableViewModel.highlightOnRowSelectEnabledhighlightEnabled4.25
FeatureTable.selection-change eventListen for FeatureTable.highlightIds4.25
FeatureTable.selectRows()Call add() or addMany() on FeatureTable.highlightIds4.25
FeatureTableViewModel.selectRows()Call add() or addMany() on FeatureTableViewModel.highlightIds4.25
LightingSunLighting4.24
"non-metric" value of ScaleBar.unit"imperial"4.27
Popup.autoOpenEnabledView.popupEnabled4.27
PopupViewModel.autoOpenEnabledView.popupEnabled4.27
SunLighting.ambientOcclusionEnabledAmbient occlusion is automatically shown and this property has no effect4.27
SunLighting.waterReflectionEnabledReflections are automatically shown and this property has no effect4.27
VirtualLighting.ambientOcclusionEnabledAmbient occlusion is automatically shown and this property has no effect4.27
VirtualLighting.waterReflectionEnabledReflections are automatically shown and this property has no effect4.27
Widget.iconClassWidget.icon4.27

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-000134427: Fixed an issue where continuous zoom not honored for programmatic set of view.zoom = x[.0 -.499...].
  • BUG-000144377: All content elements now allow rendering supported HTML for their title and description properties.
  • BUG-000151648: Fixed an issue where the Legend was not correctly rendered for the Antarctic DEM from ArcGIS Living Atlas.
  • BUG-000153181: Fixed an issue where SceneView didn't properly load an imagery layer with predefined renderer.
  • BUG-000157656: Fixed an issue where private KMLLayer did not display when printed.
  • BUG-000158808: Fixed an issue where some features with missing field values couldn't be labeled with Arcade.
  • BUG-000159168: Fixed an issue where layer visibility was not persisted for MapImageLayer.
  • BUG-000163321: Fixed an issue where popups did not render for some MapImageLayer.
  • BUG-000163544: Fixed an issue where a SimpleMarkerSymbol was rendered with poor quality when using certain SVG paths.
  • BUG-000164424: Fixed an issue where a CIMSymbol with the DoubleJog ControlMeasureLine geometric effect would get clipped at tile boundaries.
  • BUG-000164508: Fixed an issue where a web browser memory grows gradually when a layer is regularly refreshed.
  • BUG-000165080: Fixed an issue for SubtypeGroupLayer where the hidden sublayers (with visibility min / max scale) are still queried on pan / zoom.
  • BUG-000165124: Fixed an issue where a CIMSymbol with the SecondSegmentWithTicks ControlMeasureLine geometric effect caused all graphics to stop rendering when zooming out.
  • BUG-000165132: Fixed an issue where the APP-6(D) DictionaryRenderer displayed an incorrect graphic for the Counterattack by Fire symbol.
  • BUG-000165133: Fixed an issue where the APP-6(D) DictionaryRenderer displayed an incorrect graphic for the Trip Wire symbol.
  • BUG-000165321: Fixed an issue where some polyline symbols rendered by the DictionaryRenderer with the APP-6(D) dictionary had extra arrows and dashes.
  • BUG-000165858: Fixed an issue where the collapsed property value on Popup and Features was not changing when expanded/collapsed.
  • BUG-000165913: Fixed an issue where the stationary property on the MapView does not change value when zooming using a double tap and drag gesture on a mobile device.
  • BUG-000166190: Fixed an issue where SVG images in Legend had invalid 'aria-labelledby' IDs.
  • BUG-000166346: Fixed an issue where polygon features with newlines in the label expression did not display correctly.
  • BUG-000166439: Fixed an issue where the icon thumbnail for ListItemPanel.image had no size.
  • BUG-000166831: Fixed an issue where the MapView.hitTest does not return a hit for GraphicsLayer when the graphics have TextSymbol with lineWidth.
  • BUG-000167231: Fixed an issue where a CIMSymbol with CIMGeometricEffectDashes was having performance issues at higher scales.
  • Esri Community - 1403039: Fixed an issue where MapView.goTo would zoom out when only the rotation was set in the target.
  • Esri Community - 1407481: Fixed an issue where the first call to StreamLayer.sendMessageToSocket() is not applied on initial load.
  • Esri Community - 1411443: SceneView.goTo(Camera) now also interpolates Camera.fov.
  • Esri Community - 1413086: Fixed an issue where the client-side StreamLayer was causing a memory leak.
  • Fixed an issue where FeatureTable would prevent editing fields with invalid field domain values on existing features.
  • Fixed an issue where knowledgeGraphService returned incorrect values in the seconds component of timestamp offset and milliseconds component for duration.
  • Fixed an issue where primitive overrides were not supported on a CIMSymbol with CIMGeometricEffectScale.
  • Fixed an issue where setting popupEnabled to false was not properly honored for LayerSearchSource.
  • Fixed an issue where updating the subtypeField on a FeatureLayer would fail to update the valid contingent values for the corresponding fields in FeatureForm.
  • ENH-000128137: Enhanced labels of FeatureLayer to allow users to get a popup when clicking the label of a feature.
  • ENH-000130376: Enhanced polyline labelPlacement support with above-along and below-along values.
  • ENH-000157935: Enhanced AreaMeasurement2D and DistanceMeasurement2D with snapping (on by default).
  • Added shading to IntegratedMesh3DTilesLayer and IntegratedMeshLayer, which improves the lighting and overall appearance of the mesh, particularly at sunrise and sunset.
  • Adjusting the visibility range of a layer using the minScale and maxScale properties now affects the whole layer instead of individual features for the 3D Object scene layer, BuildingSceneLayer, IntegratedMesh3DTilesLayer, IntegratedMeshLayer, and PointCloudLayer. This enables consistent scale range visibility across these different layer types. In tilted views, features in the background of these layers won't get hidden due to scale range restrictions.
  • Improved terrain resolution with qualityProfile:high
  • Improved utility network rule-based snapping experience by having Editor automatically load the WebMap's utilityNetwork. This means Editor will respect utility network rules when editing a utility network dataset loaded from a WebMap.
  • In a 3D SceneView, the WebGL2 feature "Multiple Render Targets" is now used to improve the rendering performance for scenes with transparency.
  • New RenderNode input/output final-color. The final color stage happens at the very end of the render pipeline, after the composite stage. final-color input/output includes additional post-processing elements such as labels, icons and highlights.
  • The Features widget is out of beta.
  • The IntegratedMesh3DTilesLayer now supports the maxScale and minScale properties to control the layer visibility at different zoom levels.
  • VideoElement is now supported on iPhones.
  • We added support for viewing related records in the Popup for MapImageLayer.

Additional packages

Version 4.30 of the ArcGIS Maps SDK for JavaScript uses ArcGIS Arcade 1.26 (since 4.29).

Version 4.30 of the ArcGIS Maps SDK for JavaScript uses Calcite Design System, version 2.8.5. In your application, we recommend using the same version or any minor version greater than ^2.8.5.

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

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.