Skip to content

This page provides details about enhancements in the 300.0 release of ArcGIS Maps SDK for Swift. It also lists deprecations, resolved issues, known issues, and more.

Enhancements

Scenes (3D)

Local scene support

Introducing support for local scenes. Local scenes are used to visualize 3D data on a flat plane rather than a globe. They are well suited for data that lies within a small extent. As a result, we now support loading local scenes in a web scene or MobileScenePackage. Additional constructors have been added to the Scene class to enable creating it in either local or global viewing modes.

Local Scene Support

Building scene layer

Support added for BuildingSceneLayer, which are layers designed for visualizing buildings. These building models are usually created from Building Information Modeling (BIM) and the layer can be used to visualize detailed building information. Since this information can be highly complex, data filters can be used to show and hide specific features. Different filter modes, which define how the features are drawn while the data filter is active, are also available. This layer is currently only supported in the new LocalSceneView.

Local Scene Support

New view for local scenes

Introducing a new view, LocalSceneView, to support rendering a Scene that is in a local viewing mode.

Scenes with WGS84 or CGCS2000 spatial reference defined in the local scene view will report a view spatial reference of Plate Carrée. The following will return points in Plate Carrée:

This view has limited functionality and layer support at this time, and will continue to be enhanced with additional layers and functionality in future releases. However, LocalSceneView will not work on an Android Emulator because it requires the device to support OpenGL ES 3.2. In addition, the deprecated OpenStreetMap (OSM) 3D Buildings Layer will not be supported with LocalSceneView.

KML Photo Overlay

Support for rendering KMLPhotoOverlay has been added. In the current release, only rectangular shaped photo overlays are supported.

KML photo overlay of Esri headquarters

Apply surface elevation to geometry

A new Surface.applyElevation(to:) method has been added to the Surface class. This method accepts a Point, Polyline, Polygon, or Multipoint geometry and returns a copy of that geometry with all vertex Z‑values populated using the surface’s elevation source(s).

Improved performance of identify in feature layers

The performance and user experience for identify in feature layers in 3D has been improved. The biggest improvements can be seen when a layer contains a large volume of data where improvements up to 30% can be observed.

Realistic stars background

The SceneView has been updated with a realistic stars background.

Realistic stars background

Geometry editing

Editing curves with the GeometryEditor

You can now edit geometries with true curves in the GeometryEditor. Using the existing geometry editor tools, you can now interactively adjust the start and end vertices of true curve segments, and also scale, rotate, and move the whole geometry or its parts.

curve-geometryeditor-relnotes300

You cannot interactively insert vertices on curve segments or create new curve segments at this release.

Taking true curves offline

True curves are now included by default in maps and data taken offline in on-demand workflows. A new Geodatabase.isTrueCurveClient indicates if the geodatabase preserves true curves and acts as a true curve client when synchronizing edits with the service. This property is maintained for the lifetime of the geodatabase replica; delete and regenerate any existing mobile geodatabases and mobile map packages if you require them to preserve true curves. Consider setting ArcGISEnvironment.serviceCurveGeometryMode to ServiceCurveGeometryMode.densifyCurves if your application does not preserve true curves throughout editing workflows.

Supported true curve types in feature services

A new ArcGISFeatureServiceInfo.supportedCurveTypes property on ArcGISFeatureServiceInfo and ArcGISFeatureLayerInfo indicate the types of true curve segment supported in geometries stored as features in the service. You can refer to this value when your app creates and edits feature geometries, allowing you to match your app functionality to the curve types supported by the data source being edited. For example, ArcGIS Online feature services support only circular arc true curve segments represented by EllipticArcSegment where EllipticArcSegment.isCircular is true.

Displaying true curves in 3D

Display, identify, and selection of true curves in SceneView is now supported for polygons and polylines using SurfacePlacement.drapedFlat. See Known issues for details of curve geometry support in SceneView.

Well-known text OGC standard support (WKT2) for coordinate systems and transformations

A new wkText2 property on SpatialReference, SpatialReferenceBuilder, GeographicTransformationStep, and HorizontalVerticalTransformationStep returns a string using the OGC-defined international standard for well-known text representation of coordinate reference systems. WKText2 strings support advanced and modern coordinate reference system constructs, such as dynamic datums and compound systems, which cannot be correctly represented by the existing WKText property.

Analysis API

High-performance spatial analysis API

This release introduces a new high-performance analysis API built to leverage the power of modern GPUs for lightning-fast computation and display. The initial release of this API includes ViewshedFunction, LineOfSightFunction, and map algebra functions. The API provides a framework that allows you to chain functions to build complex analysis scenarios while maintaining performance. Analysis results can be persisted on the device or displayed in an AnalysisOverlay for fast rendering and responsive user experiences.

High-performance spatial analysis API

See the Spatial analysis topic for more details.

Symbology

Model symbol layer

This release introduces a new symbol layer: ModelSymbolLayer. It can create a MultilayerSymbol that renders a 3D model. The symbol layer provides enhanced capabilities compared to the legacy MarkerSceneSymbol.

Some advantages provided by ModelSymbolLayer include:

  • Support for multi-LOD (Level of Detail) for model symbols rendered in a LocalSceneView. Please note that this feature is not available in a SceneView.
  • You no longer need to use the legacy ModelSceneSymbol or SimpleMarkerSceneSymbol to create a model symbol. The new ModelSymbolLayer works directly with MultilayerSymbol.
  • It can be used to create a primitive shape or a 3D model. Previously, different object types were required to represent primitive shapes and supported model types.
  • Display primitive shapes or models using either real-world or screen units (this feature was previously exclusive to ModelSceneSymbol).
  • You can create a ModelSymbolLayer from a remote source.

There are currently some known limitations:

  • If multiple model symbol layers are added, only the first model symbol layer found is rendered; all others are ignored.
  • If there is a mix of model symbol layers and other symbol layers, only the first model symbol layer found is rendered; all other symbol layers are ignored.

Size unit when displaying symbols in 3D

A new property called MultilayerSymbol.sceneSizeUnit is added to MultilayerSymbol. This property determines whether 3D symbols are drawn in real-world units (meters) or screen units (device-independent pixels). It only applies to 3D symbols, and has no effect for 2D symbols (which are always drawn in screen units).

Raster renderer improvements

  • This release adds support to create custom color ramps for use in the StretchRenderer class by creating a ColorRamp from a collection of ColorStops. You can create each color and define its relative position along the color ramp for precise control over how colors blend, allowing you to create weighted gradients and custom color palettes.

  • Use the API to create a ColorRamp from a collection of UIColor objects to create linear gradients from a list of colors, for example from a JavaScript Maps SDK color ramp.

  • You can also create a Colormap to map integer values in a raster to a specific color when rendering raster data. Create a ColormapRenderer from a Colormap with custom defined values and colors.

Raster renderer improvements

Dynamic entities

Query dynamic entities by track ID

You can query dynamic entities using one or more track IDs. This provides a convenient way to query for specific dynamic entities, without constructing a WHERE clause, allowing you to zoom to its location, follow it on the map, or start monitoring its notification events for updates.

Geodatabase

Shared templates

When used as a SharedTemplateSource, the ServiceGeodatabase and Geodatabase classes now support shared templates from ArcGIS Enterprise 11.3+ or ArcGIS Online feature services, and from standalone mobile geodatabases exported from ArcGIS Pro 3.6+, respectively. These capabilities are available through the querySharedTemplates(), makeFeatures(), and addFeatures() methods. A SharedTemplate defines default attributes, symbology, tools, and geometry construction settings for creating sets of features across multiple layers and tables within a database.

Subtype feature layer

The SubtypeSublayer.searchID, which uniquely identifies a layer, now allows applications to enable Web or Mobile Map search by using a string identifier.

Support for reading classification schema

This release introduces PortalInfo.hasClassificationSchema, which allows you to determine whether a classification schema is defined for a portal. ArcGIS Enterprise administrators set the item's data sensitivity level, specify who can access and share the information, and outline when information can be made publicly accessible. If a classification schema exists, you can leverage new APIs to retrieve it and view classification information for a specific PortalItem. This information allows you to overlay the data's classification information, as defined by the administrator (such as Restricted, Sensitive, or Confidential), on your application user interface.

Attachments

Keywords

Use the new Attachment.keywords property to read keywords assigned to existing attachments. ArcGISFeature has new overloaded methods to add and update attachments. In addition, you can set and edit keywords when creating or updating an Attachment. Attachment keywords are supported when connected to feature services and in stand-alone mobile geodatabases.

Pop-up filters

AttachmentsPopupElement can be authored to filter attachments by one or more keywords and/or by content type (for example, images, video, and so on). When these filters have been configured, fetching attachments returns only Attachments that match the filter criteria.

Add and update directly from a file

ArcGISFeature has new overloaded methods that take a file path for attachment content instead of a memory buffer. When Attachment content is supplied from a file, the Swift Maps SDK application can avoid the large memory allocation required for a buffer, thus making the operation more memory efficient.

Improved memory management

Memory optimizations of the Swift Maps SDK mean that an application is better equipped to handle larger Attachments compared to previous releases. Combining these optimizations with the file-based APIs described above and the ArcGIS Maps SDK for Swift can support attachments up to approximately 1 GB when the device memory allows for it.

The FeatureFormView toolkit has been enhanced to work seamlessly with these larger attachments.

Utility associations candidate filtering

The FeatureFormView toolkit components now support filtering candidates by attributes when adding new utility associations.

Map view

Change map spatial reference

You can now change a map's spatial reference on-the-fly even after it is loaded or being rendered on screen. This can be useful, for example, if you want to specify a particular spatial reference for a programmatically created map, or if you want to change the spatial reference of a pre-authored web map or mobile map to match a custom basemap.

When the spatial reference changes, existing layers in the map that support reprojection automatically update their content to display in the new coordinate system. This includes layer types such as ArcGISMapImageLayer, WMSLayer, FeatureLayer (including FeatureCollectionLayer and SubtypeFeatureLayer), AnnotationLayer, DimensionLayer, ENCLayer, KMLLayer, and RasterLayer. However, tiled layers are strictly bound to their tiling scheme’s spatial reference and cannot be reprojected. This includes ArcGISTiledLayer and ArcGISVectorTiledLayer, WMTSLayer, and WebTiledLayer. You can inspect the layer’s LayerViewState to get information about the underlying error when these layers fail to render.

GeoView content, such as graphics overlays, grids, location display, the geometry editor, and operations such as identify and set viewpoints can handle updates to the map’s spatial reference. However, image overlays do not support reprojection and will not be rendered if their spatial reference does not match the map’s spatial reference.

Change Map Spatial Reference

New motion smoothing filter default value

The motion smoothing filter is now disabled by default. The motionSmoothingIsEnabled on IndoorsLocationDataSourceConfiguration is initialized to false to eliminate lag previously observed with geometry-based positioning. Improvements to our internal pipeline and newer, outlier-resilient algorithms have rendered this secondary filter redundant. However, it can still be manually enabled if additional smoothing is required.

Pedestrian navigation

RouteTracker now supports both vehicle and pedestrian navigation outdoors. The algorithm has been optimized for pedestrian-specific dynamics, including varied speeds, frequent orientation changes, and non-linear movement. To configure, set the navigationMode parameter to driving for vehicle navigation, or walking for pedestrian navigation upon initialization.

Feature forms

Utility network association editing

The FeatureFormView toolkit component supports utility network association editing out-of-the-box. You now have the ability to add and delete associations, as well as listing all existing associations, when editing features that are part of a utility network in a feature form. When adding associations, the component presents a list of possible candidate features that a new association can be created based on the feature being edited.

Developers can also use the UtilityAssociationsFormElement API to delete existing associations, get the list of potential UtilityAssociation objects, choose from the possible UtilityAssociationFeatureCandidate and get the available options for the user to select in the form.

Changes made to associations can be saved with a call to FeatureForm.finishEditing() and undone with a call to FeatureForm.discardEdits(). When edits are complete, changes must be applied to the remote service.

Layer

Oriented imagery layers

This release introduces support for rendering oriented imagery layers. You can create an OrientedImageryLayer by providing either a URL, a portal item, or a feature table. This layer type is also supported when opening web maps, web scenes, or mobile map/scene packages that contain them. Functionally, an OrientedImageryLayer behaves similarly to a FeatureLayer, offering capabilities such as identify, selection, query, and displaying pop-ups. In future releases, OrientedImageryLayer will be enhanced with additional operations, such as finding the best image and generating dynamic footprints.

Symbol layer drawing order

Symbol layer drawing overrides the default drawing order of symbols on a GeoView. When symbols have more than one symbol layer (such as a cased road symbol), symbol layer drawing controls how those individual symbol layers are ordered across symbol classes. You can set the symbol layer drawing order for a published feature service, web map, or web scene. The symbol layer drawing order established during authoring and publishing is preserved and respected when rendering symbols in Native Maps SDK. The example below shows a multi-layer symbol: the first image illustrates when symbol layer drawing is not enabled, while the second image demonstrates the effect when the symbol layer drawing order is defined and enabled.

Without symbol layer draw orderSymbol layer draw order applied
Symbol layer drawing not enabled Symbol layer drawing enabled

New metadata properties

Added new metadata properties on ArcGISFeatureLayerInfo:

  • supportsQuantizationEditMode: indicates if the query operation supports quantization designed to be used in edit mode (highest resolution at the given spatial reference). You can use this property to make an appropriate choice for FeatureTilingMode.

  • supportsCoordinatesQuantization: indicates if the query operation supports quantization or not (View or Edit mode).

  • definitionQuery: indicates an optional SQL clause that limits the features returned by the service for the layer. A definition query can only be configured by the service administrator.

Raster

Access raster metadata

After a Raster has loaded, you can retrieve the new RasterInfo class to access source metadata such as cell size, extent, and spatial reference. This information is useful when you need to work with source resolution, for example, to calculate a map scale for zooming to native raster resolution, or to set meaningful min and max map scales.

Specify the resampling method

The RasterLayer.resamplingType property has been added to RasterLayer, which controls how raster cell values are calculated when the layer is rendered at a different resolution than the raster's native cell size, or when the raster is transformed, for example, scaled or reprojected. The RasterResamplingType defaults to automatic and can be set to nearestNeighbor or bilinearInterpolation. When set to automatic, raster properties will be used to determine what type of data the raster is, and set the resampling method accordingly. For example, discrete data will use nearestNeighbor, and continuous data will use bilinearInterpolation.

Authentication

Token credential

Added a new static factory method for creating a TokenCredential for a token-secured federated resource using an existing owning system (portal) credential.

Arcade

Support for new Arcade version

The SDK now supports Arcade 1.34 and Arcade 1.35.

New data types

  • Added new Pixel type to represent a cell in an imagery layer.

New dictionary functions

The following new dictionary functions have been added:

  • Count
  • Erase
  • GetKeys
  • GetValues
  • Insert
  • TimeReceived

The following Pixel function has been added:

  • Updated DefaultValue, HasKey, and HasValue to work with the Pixel type.

Updated functions

  • IsEmpty function has been updated with an extra parameter allowing it to work with containers.

New profiles

The following profiles have been added:

  • Imagery Popup
  • Imagery Popup Element

New language feature

Localization

Extend support for select styles

Basemap Styles support a range of Open Basemap styles. These styles now support the BasemapStyleParameters.language parameter allowing developers to display Open Basemap styles in their language of choice.

Projection engine

Updates to coordinate systems, transformations, and projection data

  • Available coordinate systems and transformations have been updated to EPSG v12.049. ETRS89 revisions are not included in this release.
  • The anchor epoch date parameter has been added to some geographic and vertical coordinate systems with semi-dynamic datums. There is a table for them in the geographic coordinate systems PDF. Anchor epoch information from the source and target geographic coordinate reference systems is used with the new NTv2 velocity grid transformation method. Transformations using this method were added for Canada.
  • The anchor epoch date parameter is included in the list of supported geographic and vertical coordinate systems available in the geographical and coordinate systems PDF file inside a .zip file on the downloads page with semi-dynamic datums. Anchor epoch information from the source and target geographic coordinate reference systems is used with the NTv2 velocity grid transformation method and may cause the use of WKT2 when converting a coordinate system or transformation to string format. Transformations using this method have been added for Canada.
  • The documentation of supported geographic, projected, and vertical coordinate systems contains tables of deprecated coordinate systems. An explanation of why a coordinate system may be deprecated is included with each table.
  • New projected coordinate systems have been added for Montana RMTCRS, Hall County in Nebraska, several Ohio counties, Indonesia, and other regions.
  • Projection Engine Data include new geographic transformation grids for Bhutan, Canada, Greece, Japan, Latvia, and the United Kingdom, as well as new vertical transformation models for the Baltic Sea, French Antilles, Germany, Greece, Greenland, Japan, Mayotte (France), and Mexico.
  • The list of geographic and vertical coordinate systems and list of projected coordinate systems, each available in a PDF file inside a .zip file on the downloads page now contain tables of deprecated coordinate systems. An explanation of why a coordinate system may be deprecated is included with each table.

SDK enhancements

Swift package changes

The Swift Maps SDK package now includes a single binary framework. Previous versions offered two separate frameworks, ArcGIS.xcframework and CoreArcGIS.xcframework, which have been merged to optimize package and application size.

Support for iOS 26

Shortly after iOS 26 was announced during Apple's WWDC conference in June 2025, we began testing with the developer and public betas to ensure apps built with the Swift Maps SDK could adopt it quickly. Following the official release of iOS 26, we addressed a few isolated issues and certified this release to support iOS 26.

Background support for iOS 26

The BGContinuedProcessingTask.bind(to:) extension method allows developers to easily adopt the Continuous Background Task API introduced in iOS 26 to continue running jobs such as GenerateOfflineMapJob even when the app is backgrounded. This method monitors the job, updates the task's progress, and coordinates completion or cancellation between them. The system automatically shows the progress of the task using a Live Activity when the app is in the background.

Accessibility improvements

This release enhances GeoViews (MapView, SceneView, and LocalSceneView) to support Full Keyboard Access. Full Keyboard Access is an accessibility feature on iOS that allows users to control their device using only an external physical keyboard, instead of relying on the touchscreen.

Users can cycle focus between the GeoView, its attribution bar and callout (when visible), and the surrounding application UI elements using the Tab key and arrow keys. Users can also perform common GeoView interactions such as pan, zoom, rotate, and tilt using keyboard shortcuts.

In addition, GeoView supports dedicated gestures for navigation when VoiceOver is active. VoiceOver is Apple's gesture-based screen reader, and it changes how standard gestures are used to interact and explore the application's UI elements. When VoiceOver is active, users can pan the GeoView using the scroll gesture (three-finger swipe up/down/left/right) and use the VoiceOver rotor to select the zoom option and zoom in/out by swiping up or down.

Breaking API changes

  • GeometryBuilder and subclasses no longer adopt the Sendable protocol. This is a bug fix. The builders are not thread-safe and should not be shared across concurrency domains, for example across actors.

  • FloorFacility.id is now an optional of type ID? and no longer conforms to Identifiable

Behavior changes

  • An Advanced Editing extension-license is no longer required to edit branch-versioned geodatabases that do not contain utility networks. You can now create a new version or edit features in a version, including replicas generated by sync-enabled feature services.

  • This release introduces a change to the license string option for licensing an application for production use. Licensing a version 300.0 app requires a license string that is specific to 300.x versions. License strings for versions prior to 300.0 will be considered invalid and will not authorize APIs for production use. Note that the user authentication option for licensing your applications remains unchanged.

  • The default ArcGISEnvironment.serviceCurveGeometryMode is now ServiceCurveGeometryMode.trueCurveClient. By default, curve geometries are fetched from feature services, including when taking maps and services offline on-demand, and your app indicates that it is a true curve client when editing feature services and synchronizing edits. It is your responsibility to ensure data integrity by correctly preserving any curve segments throughout your application, or to set ArcGISEnvironment.serviceCurveGeometryMode to ServiceCurveGeometryMode.densifyCurves if your app does not preserve true curves. See Known Issues for details of curve geometry support in scene views.

  • GeometryEngine method GeometryEngine.autoComplete(existingBoundaries:newBoundaries:) now supports true curves.

  • Starting with this release, a Scene in a webscene or a MobileScenePackage will no longer fail and will load successfully when the viewing mode is Local. A scene in a Local viewing mode will be in the projection that is defined in the webscene or the MobileScenePackage scenes. When a Scene is created with Local viewing mode, the SpatialReference of the Scene would be the same as the SpatialReference of the first layer within the Scene, which in most cases is the first layer in the Basemap's baselayer collection.

  • The tiling scheme of the Scene is set to Automatic when a constructor with viewingMode is used. Once the Scene has loaded, the appropriate tiling scheme would get set. However, in the case of Local viewing mode, the tiling scheme would remain Automatic.

  • A GeotriggerMonitor will now account for feature updates to fences created from a ServiceFeatureTable in FeatureFenceParameters when tiling mode is disabled (FeatureTilingMode.disabled).

  • Raster data may render differently in this release, due to the addition of the RasterLayer.resamplingType property and the automatic determination of a default resampling method. For example, a raster that previously defaulted to Bilinear Interpolation could now default to Nearest Neighbor.

  • SceneViewProxy.location(fromScreenPoint:) returns an empty point instead of a Point(0, 0, 0) for a location that is above the surface.

  • Default value for RefreshTokenExchangeInterval has been changed to 24 hours.

  • The relative file paths of transformation grid files returned by GeographicTransformationStep.projectionEngineFilenames and HorizontalVerticalTransformationStep.projectionEngineFilenames now reflect the updated file structure for Projection Engine Data files. See the Projection Engine Data download for more information about file structures used.

Deprecations

OS and framework deprecations

  • Support for iOS/iPadOS 17 is deprecated. The last release to support this version of iOS/iPadOS is 300.0. A minimum of iOS/iPadOS 18 will be required at the next release.

  • Support for macOS Sonoma (version 14) is deprecated. The last release to support this version of macOS is 300.0. A minimum of macOS Sequoia (version 15) will be required at the next release.

Issues resolved

Issues addressed in this release are listed below.

  • BUG-000118443 - The KMZ file does not display image as a photo overlay.

  • BUG-000161830 - When two labels overlap, the label which loads last is displayed regardless of the layer order.

  • BUG-000164521 - The LabelDefinition class does not honor the z-index of the graphic.

  • BUG-000154800 - Vertical labels in Japanese overlap.

  • Labels disappear too far from the screen edge when panning on mobile devices.

  • CVE-2025-54874: Updated OpenJPEG third-party library to v2.5.4.

  • BUG-000179119 - Enabling the Background option of the Label style in Map Viewer causes the text to disappear when viewing the map.

  • BUG-000182489 - An extra label appears at (0,0) but disappears after panning or zooming away from (0,0) or the country polygon.

  • BUG-000175907 - ServiceFeatureTable fails to load when the renderer uses a hidden field and coded values have integer and float types.

  • BUG-000179924 - ServiceGeodatabase.applyEdits() fails when more than one table references the same service layer.

  • BUG-000180102 - ServiceGeodatabase.applyEdits() fails when an edit_date or edit_op field exists.

  • BUG-000182950 - GenerateGeodatabaseJob crashes when the extent contains Z or M values.

  • The network source association filter set for a UtilityAssociationsPopupElement is not applied when the web map is taken offline.

  • The default FeatureTemplates for a SubtypeFeatureLayer are not retained when the layer is created from a web map.

  • Issue reported on Esri Community - Rotation Expression: Arcade expression issue. The Renderer.RotationExpression set to a value is not honored.

  • Renderer.RotationExpression set to a numeric value is not honored.

  • IndoorsLocationDataSource incorrectly populates Location.course with the device's magnetic heading instead of the user's actual course of motion.
  • BUG-000183129 - app crashes when opening a map that contains floor-aware data where the FACILITY_ID field is null.

Known issues

Known issues or limitations for this release are listed below.

  • The ViewshedFunction is only supported with ContinuousFields in a projected coordinate system. Future releases will support geographic coordinate systems such as WGS84.

  • A FieldAnalysis can only be displayed in a MapView or SceneView if the result spatial reference matches the view.

  • Raster data with 64-bit float or integer-based pixels are not supported.

  • Raster data with u32 integer-based pixels are supported, but only if the values are within an i32 range. u32 integer-based pixels with values outside an i32 range are not supported.

  • In map view, a BlendRenderer created using a ColorRamp is supported, but only if the color ramp is constructed from a PresetColorRampType. All constructor types for ColorRamp are supported in a SceneView.

  • The maximum size of raster used to populate a ContinuousField, DiscreteField, or BooleanField is 2 GB, which equates to 23170 x 23170 pixels.

  • The maximum size of a ContinuousField, DiscreteField, or BooleanField used in a FieldAnalysis is 1 GB, which equates to 16384 x 16384 pixels.

Sample updates

New samples

Enhancements

Bug fixes

Toolkit updates

Feature form view

FeatureFormView adds support for adding and removing utility network associations, which model relationships between utility assets in the real world based on connectivity, containment, or structural attachment. Two new FeatureFormView.EditingEvents are also added to augment these capabilities:

  • navigationChanged - Use this event to track as users progress through the workflow of adding a utility association. Use the metadata in the FeatureFormView.NavigationPathItem, provided in the event, to update the selected features or viewpoint in the map, as desired.

  • showOnMapRequested - Use this event to know when users want to see a specific feature on the map. For example, when adding a utility association, users are provided with a "Show On Map" option for every association candidate feature that has geometry.

Add an associationDelete an association
Feature Form View - Adding a utility associationFeature Form View - Removing a utility association

Location button

The LocationButton component makes it easy to display the device location on a map. Users can toggle the location on or off, and recenter the map based on the auto-pan modes supplied by the app developer. This component manages the user permission requests needed to access the device's location services and can be styled using SwiftUI modifiers to match the application UI.

Location Button

Map area size

The OfflineMapAreasView component now displays the download size of map areas that are generated ahead-of-time on the portal.

Map area size

Authenticator UI updates

The Authenticator component now displays alerts instead of sheets in response to authentication challenges such as requiring a user to provide a username/password for ArcGIS Token security, or to browse to a certificate for PKI security. The UI also now allows the user to skip providing a certificate in order to support optional PKI security server configurations.

Pop-up edit summary

The PopupView now shows when a feature was last created or edited and who made those changes.

Popup Edit Summary

New component

A new BuildingExplorer component provides a tool for a user to browse the levels and sublayers of a BuildingSceneLayer in a LocalSceneView.

Enhancements

The FloorFilter component has been revamped and modernized for Liquid Glass.

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