Skip to content

This page provides details about enhancements in the 300.0 release of ArcGIS Maps SDK for .NET. It also lists this release's 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.ApplyElevationAsync(Geometry, CancellationToken) method has been added to the Surface class. This method accepts a MapPoint, 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 ArcGISRuntimeEnvironment.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 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 ISharedTemplateSource, 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 QuerySharedTemplatesAsync(), CreateFeaturesAsync(), and AddFeaturesAsync() 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 .NET 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 .NET 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 .NET 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, 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 IsMotionSmoothingEnabled 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.

Improved Bluetooth Low Energy beacon scanning on Android

We improved the process of scanning for Bluetooth Low Energy (BLE) beacons on Android devices. To minimise the chance of the Android OS shutting down the scanning process, e.g. to save battery, even when running in the foreground, we are restarting the BLE scan after 5 minutes.

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 UtilityAssociationFeatureSource 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.FinishEditingAsync() 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 an AccessTokenCredential 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

.NET 10

ArcGIS Maps SDK for .NET version 300.0 supports .NET 10.

HTTP/2 enabled by default

HTTP/2 is now used by default for services that support it. This can result in significantly faster load times for layer-heavy maps.

Calcite .NET Toolkit

Final version of Calcite .NET toolkit 1.0 is now available. The toolkit draws inspiration from the Calcite Design System. The libraries offer a wide range of styles, icons, and more that help enhance the styling of your application.

Authentication

An Identity-Aware Proxy (IAP) is a security feature that enables organizations to manage access to their on-premises web applications and services based on user identity. Typically, it functions as a reverse proxy, acting as a gatekeeper to ensure that only authenticated and authorized users can access specific resources. The authentication process for IAP occurs within a web session using protocols such as OAuth, SAML, or OpenID Connect. During this session, security tokens and cookies are generated, which remain valid throughout the session until they are invalidated.

ArcGIS Maps SDK for .NET now supports accessing ArcGIS Enterprise Portal and Services behind Microsoft Entra Application Proxy via Microsoft Identity Platform.

Accessibility Enhancements

  • Support for keyboard navigation for .NET MAUI Android.

  • Support for iOS keyboard Navigation when Full Keyboard Access is enabled on an iOS device.

  • Enhanced callout title and font size to scale with OS settings.

Convert to ImageSource

This release adds a new synchronous method to convert a RuntimeImage to an ImageSource. Note that this method is only available on .NET MAUI and WinUI.

Miscellaneous

  • ImageTiledLayer.Attribution property for setting custom attribution on tiled layers.

  • IJob interface on Job<T>, enabling working with heterogeneous job collections without knowing the result type.

  • CredentialRequestInfo has new Error and PreviousFailureCount properties providing context about why an authentication challenge was issued.

  • Added SceneViewAutomationPeer for WPF and WinUI, providing screen reader support for SceneView controls.

  • "Powered by Esri" is now a clickable hyperlink.

Local Server

There are no Local Server updates with this release. ArcGIS Maps SDK for Local Server version 200.8 is the current and final release. ArcGIS Maps SDK for .NET 300.x versions are compatible with and are supported for use with ArcGIS Maps SDK for Local Server version 200.8.

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

  • SceneView.ScreenToLocationAsync() 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.

  • Version 300.0 ships major under-the-hood changes to the authentication framework. For users who have already migrated away from deprecated APIs, the upgrade should be smooth. However, there are some behavior changes:

    • Exception changes: Authentication errors that previously surfaced as generic ArcGISWebException or ArcGISRuntimeException now throw specific exception types such as InvalidCredentialsException, TokenRequiredException, TokenExpiredException, InvalidTokenException, InvalidApiKeyException, and OAuthException. Forbidden (403) responses and other HTTP-level auth failures that previously threw ArcGISWebException now throw HttpRequestException with the appropriate StatusCode.

    • Invalid credentials are retained until replaced: When a credential becomes invalid or is revoked, AuthenticationManager no longer immediately removes it. The invalid credential remains in Credential until a new credential is successfully generated via the challenge handler.

    • Federated services can use different identities: It is now possible to authenticate against a portal and its federated services as different users simultaneously. Previously, signing into a federated service as a different user would replace the portal credential. Generating a federated credential no longer automatically stores the owning portal credential in AuthenticationManager.

    • CredentialRequestInfo has new Error and PreviousFailureCount properties providing context about why an authentication challenge was issued. The Response property is no longer populated for token authentication challenges.

    • CredentialRequestInfo.ServiceUri semantics changed: For federated services, it now contains the owning portal URL rather than the original service URL. For other services, it contains the resource path without query parameters.

    • Credential serialization uses JSON: BinaryFormatter and DataContractSerializer are no longer supported for credential persistence. Use ToJson() / Credential.FromJson().

    • If you are still using deprecated authentication APIs, check out How to Migrate to the New Authentication System in ArcGIS Maps SDK for .NET on ArcGIS Blog.

  • LicensingException is now thrown for licensing-related errors such as using an unlicensed feature or an expired license. These previously threw generic ArcGISRuntimeException.

  • Symbol.CreateSwatchAsync now returns Task<RuntimeImage?> instead of Task<RuntimeImage>. 3D-only symbols such as ModelSceneSymbol cannot render a 2D swatch and return null.

  • StatisticRecord.Statistics is now IReadOnlyDictionary<string, object?> instead of IReadOnlyDictionary<string, object>. Values can be null when a statistical aggregation has no applicable data (for example, MIN/MAX/AVG on an empty result set).

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.

  • 300.0 is the last release to support .NET 9 for .NET MAUI. A minimum of .NET 10 will be required at the next release when building .NET MAUI apps.

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.ApplyEditsAsync() fails when more than one table references the same service layer.

  • BUG-000180102 - ServiceGeodatabase.ApplyEditsAsync() 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-000173009 - A mobile map package (MMPK) of 300MB or larger crashes in ArcGIS Maps SDK for .NET MAUI apps when quickly zooming in or out on an iOS device.

  • BUG-000170696 - ArcGIS Maps SDK for .NET MAUI fails to get the correct item size when using PortalItem.CreateAsync for items bigger than 2 GB.

  • Issue reported on Esri Community - Photo overlays in .NET 100.4.

  • Issue reported on Esri Community - Exception in CacheManager.

  • Issue reported on Esri Community - Mac Catalyst: Universal publish failure.

  • Issue reported on Esri Community - MapView ignores first left-drag pan after right-click.

  • GeoView sizing on Android does not honor surrounding layout elements in grids with Auto and * row definitions.

  • Incorrect back-navigation gesture triggering on iOS 26 when dragging left-to-right on the map. Swiping from the screen edge still navigates back.

  • Callouts disappear at incorrect locations on MAUI iOS and Mac Catalyst when the GeoView is surrounded by other controls.

  • SubtypeSubtable.UpdateFeatureAsync deletes the given feature instead of updating it.

  • Using IndoorsLocationDataSource, the blue dot freezes on Android after approximately 10 minutes due to the OS stopping BLE scans.

  • Unable to differentiate between 0 and "unavailable" velocity and course values. Unavailable values are now represented by NaN.

  • SystemLocationDataSource on Windows incorrectly reports HasZ as true when no valid altitude data is available.

  • Horizontal dilution of precision key in Location.AdditionalSourceProperties is misspelled. This has been updated from "hpop" to "hdop".

  • Issue reported on Esri Community - How to set attribution correctly on a WebTiledLayer.

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

All previous 200.x samples have been migrated to 300.0. Version 200.8 was the last release to support Universal Windows Platform (UWP) and .NET Framework. The following new samples have been added in this release:

Enhancements

  • Updated all Sample Viewer apps to use the Calcite .NET Toolkit. Note that some samples in the viewer now require the Calcite toolkit when built outside of the Sample Viewer solution.
  • Updated OAuth login prompts to use WebView2.
  • Downloading sample data workflow has been enhanced to present a permission dialog before downloading the sample data.
  • Added XAML converters for RuntimeImage-to-ImageSource on MAUI, simplifying image display in several samples.
  • Updated Filter features in scene with a new workflow that allows searching buildings layer by name.
  • Updated Set spatial reference to allow users to set spatial reference at runtime.
  • Renamed samples and Analysis APIs to include the Exploratory prefix.
  • Added WinUI implementation of Display overview map.
  • Updated several sample READMEs for clarity and consistency.
  • Removed references to ArcMap from sample descriptions.

Updates required for migration to version 300.0

  • Removed the UWP Sample Viewer app.
  • No option to build WPF samples using .NET Framework.
  • Eliminated Windows x86 build targets.
  • No use of obsolete layer creation APIs in XAML.
  • Removed references to deprecated Esri.ArcGISRuntime.Http.ArcGISWebException.

Bug fixes

Toolkit updates

This release includes several deprecation updates, support for the new LocalSceneView control, various improvements to PopupViewer, and a new JobManager class.

Platform support updates

With this release, support for the following platforms is removed from the toolkit:

  • Universal Windows Platform (UWP)
  • .NET Framework

New features and enhancements

  • Added support for LocalSceneView.
  • Added a new JobManager class for managing long-running server tasks when an app gets backgrounded.
  • PopupViewer enhancements:
    • Added audio and video support for WPF, WinUI, MAUI iOS, and MAUI Windows.
    • Added support for showing the localized edit summary of when a popup was last edited or created by a known editor or author.
    • Added support for selecting and copying fields text on Windows.
    • Implemented use of the WinUI PipsPager control.
    • Added support for opening web links without specific intent configuration on Android.
  • BasemapGallery in WinUI has been improved with automation properties to enable accessibility workflows.

Bug fixes and technical improvements

  • MeasureToolbar
    • Replaced use of the deprecated SketchEditor class with GeometryEditor.
  • SearchView
    • Fixed search source dropdowns not expanding on WinUI and WPF.
    • Avoided a debug-only exception when switching search sources on MAUI.
  • PopupViewer
    • Fixed fields view not honoring dark mode on MAUI.
    • Removed the use of SelectableLabel for hyperlinks as it can cause issues with the tap gesture recognizer.
  • FeatureFormView
    • Fixed an edge case where RadioButtons would not render.
  • Guarded against DispatcherQueue being null on shutdown.

Removed components

The following were deprecated in version 200.8. With this release, they have been removed from the code.

  • PopupManager
  • Removed deprecated property AllDisplayLevelsSelecteded that was misspelled. The new property is called AllDisplayLevelsSelected.

Known Issues

  • As per Microsoft .NET design for Android dependencies, adding ArcGISRuntime.Maui.Toolkit reference causes compilation error on .NET MAUI Android targeting .NET 10. Workaround is to add following lines to our project:
    Use dark colors for code blocksCopy
    1
    2
    3
    4
    5
    6
    <ItemGroup Condition="'$([MSBuild]::GetTargetPlatformIdentifier($(TargetFramework)))'=='android'">
          <PackageReference Include="Xamarin.AndroidX.Tracing.Tracing" Version="1.3.0.1" />
          <PackageReference Include="Xamarin.AndroidX.Tracing.Tracing.Ktx" Version="1.3.0.1" />
          <PackageReference Include="Xamarin.AndroidX.Concurrent.Futures" Version="1.3.0.1" />
          <PackageReference Include="Xamarin.AndroidX.Concurrent.Futures.Ktx" Version="1.3.0.1" />
    </ItemGroup>

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