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 ArcGISScene 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 ArcGISLocalSceneView.

Local Scene Support

New view for local scenes

Introducing a new view, ArcGISLocalSceneView, to support rendering an ArcGISScene 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, ArcGISLocalSceneView 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 ArcGISLocalSceneView.

Apply surface elevation to geometry

A new Surface.applyElevation() method has been added to the Surface class. This method accepts a ArcGISPoint, 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 ArcGISSceneView 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 ArcGISSceneView is now supported for polygons and polylines using SurfacePlacement.drapedFlat. See Known issues for details of curve geometry support in ArcGISSceneView.

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

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 Color 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(), createFetures(), 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.

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 Flutter 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 Flutter 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 Flutter can support attachments up to approximately 1 GB when the device memory allows for it.

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, 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.

GeoViewController 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

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.

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.specificLanguage 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

New API

This release of ArcGIS Maps SDK for Flutter exposes the following additional API:

  • Dynamic entities
  • Callout
  • Basemap style info and parameters
  • Identity Aware Proxy (IAP) Authentication
  • Utility network
  • Remaining feature reduction APIs, enabling configuration of feature reduction at app level
  • Labeling support for 2D and 3D

Enhancements

  • ENH-000179801 - A new optional ForegroundServiceNotificationConfig parameter has been added to the SystemLocationDataSource constructor. It supports customization of the Android foreground service notification message on Android. The default message has also been updated to be more generic.

  • You can now enable control of the parameter name of each file when posting multipart form data with ArcGISHttpClient. This capability is exposed through an optional property FilePart.parameterName and allows you to post a new thumbnail image to a Portal user's profile.

  • A new class AttributeMap has been added to support workflows that require attributes, key/value pairs, where the types are not natively supported in Dart, such as int32 or float32.

  • Drawing is now performed on a background thread resulting in performance improvement for Android.

Breaking API changes

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() now supports true curves.

  • Starting with this release, a ArcGISScene 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 ArcGISScene is created with Local viewing mode, the SpatialReference of the ArcGISScene would be the same as the SpatialReference of the first layer within the ArcGISScene, which in most cases is the first layer in the Basemap's baselayer collection.

  • The tiling scheme of the ArcGISScene is set to Automatic when a constructor with viewingMode is used. Once the ArcGISScene 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.

  • ArcGISSceneViewController.screenToLocation() 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.

  • BUG-000182150 - Flaky authentication via Integrated Windows Authentication (IWA). Using IWA authentication to handle NTLM requests may result in circular authentication requests due to a timing issue.

  • Issue reported on Esri Community - Exception thrown when trying to set a null value to a feature attribute.

  • From samples issue: d.HH:MM:SS timestamps from ArcGIS Enterprise servers not being interpreted correctly by the HTTP client leading to an exception.

Known issues

Known issues or limitations for this release are listed below.

  • In order to manage resources, some Android devices may abort long-running GPU-based analysis operations before they complete, causing those operations to fail. If this occurs, consider reducing the size of the analysis.

Sample updates

Toolkit updates

Enhancements to PopupView:

  • Support for navigating through associations in a utility network has been added in this release. This integrates the newly exposed UtilityAssociationsPopupElement API with the toolkit component.
  • To enable this change, the main PopupView is now wrapped in a Navigator widget. No behavior changes are expected to existing apps using the PopupView from the arcgis_maps_toolkit package on pub.dev. However this may need to be taken into account if any custom implementations of the PopupView are updated.
  • Support for edit summary: The localized summary of when the popup was last edited or created by a known editor or author.

Support for Local Scene View

Enhancements to Authenticator

  • Authenticator enhanced with support for Identity Aware Proxy (IAP) authentication.

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