This page provides details about enhancements in the 300.1 release of ArcGIS Maps SDK for .NET. It also lists this release’s deprecations, resolved issues, known issues, and more.

Enhancements

Scenes (3D)

Places and Labels layer in local scenes

The Open 3D Labels layer, a global layer of places and labels available in light and dark variants, now displays labels in LocalSceneView. As a result, 3D basemaps that include the Places and Labels layer now render labels in LocalSceneView as well. This complements existing support for the global Buildings and Trees layers and allows the full contents of Esri 3D basemaps to be rendered.

The LocalSceneView now supports rendering of Raster Tile Layers that have been authored with BlendModes in a WebScene. Blend modes are used to blend layers together to create creative and compelling scenes or to highlight specific patterns in data. There is currently no API to control or change blending type, and GroupLayers are ignored when determining how layers are blended.

3D Tiles in local scenes

3D Tiles layers are now supported in the LocalSceneView, extending 3D Tiles visualization from global scenes to local scenes, which provide support for visualizing data in a wide variety of projected coordinate systems. The addition of 3D Tiles enables integration of additional sources of 3D textured mesh data, such as Google Photorealistic 3D Tiles. Additionally, 3D Tiles layers now include dynamic attribution which is determined for the current viewpoint and aggregated into a single string and accessed via the GeoView‘s AttributionText property. The dynamic attribution is visible by default within the built-in attribution bar in the SceneView and LocalSceneView UI controls. If using Google Photorealistic 3D Tiles, follow Google’s requirements for applications developed with Google’s Map Tiles API.

Local scene view with OGC 3D Tiles

Gaussian splat layer

Use the new GaussianSplatLayer to visualize highly realistic built and natural environments in a LocalSceneView. Gaussian splats render high-fidelity detail for thin and intricate structures such as power lines, guardrails, and antennas, making them well suited to infrastructure workflows.

Gaussian splat layers can be displayed only in a LocalSceneView, and, in the current release, only on Windows and macOS (with Mac Catalyst).

Gaussian splat layer visualization in a local scene view

Accessibility-aware label text scaling enabled by default

Label text generated from LabelDefinition classes on layers in the operational layers collection now scales with the device’s accessibility text-size settings by default. This capability can display larger labels than in previous releases, improve label legibility for users who increase system text size, and keep labels more consistent with the rest of the application’s user interface. To preserve the previous behavior and keep label text at a fixed size regardless of accessibility settings, set UseSystemTextScale to false on SceneView or LocalSceneView.

Analysis API

Analysis API enhancements

This release builds on the high-performance analysis APIs released in 300.0 with the following capabilities:

  • Additional map algebra functions to expand mathematical operations in analysis workflows, including trigonometric and exponential functions, as well as functions such as clamp and remainder. See the Map algebra topic for more information.
  • Slope and aspect functions to calculate terrain steepness and slope direction.

Animated scene showing slope and aspect analysis results

  • Analysis APIs now support processing datasets larger than 2 GB by breaking processing into smaller GPU-queued areas before reassembling them into a single result file.

Symbology

New DictionarySymbolStyle property

DictionarySymbolStyle now exposes a new property UISchemaJson. This UI Schema JSON, if present in the Esri published dictionaries or webstyles, provides a set of rules and domains that could be used to build a user experience for browsing and building symbols from the dictionary style.

Military symbology updates

Some control measure line symbols include elements whose appearance is determined by a measurement attribute as specified by the standard. With this release, these symbols can now be rendered dynamically, reflecting the values from their associated measurement attributes. For example, air corridor symbols will use the attribute mapped to the new width symbol property to determine the real-world distance between the parallel corridor lines. The model configuration property must be set to ordered anchor points. This feature is only supported in static rendering mode when working in 3D. For more information on the latest updates to the Military Symbology Dictionary Styles, see the Military symbology styles change log.

Utility Network

Enhanced shared template workflows

Shared templates now provide a more consistent editing experience across connected and disconnected workflows, with improvements for offline support, geometry builders, transactions, and performance.

Shared templates can now be included when generating a sync-enabled mobile geodatabase. SyncCapabilities.SupportsSharedTemplates indicates whether a feature service supports shared template download. If it does, CreateDefaultGenerateGeodatabaseParametersAsync() automatically enables GenerateGeodatabaseParameters.SyncSharedTemplates, allowing field applications to provide the same guided feature creation experience online and offline.

Template-driven feature creation has been expanded. ISharedTemplateSource.CreateFeaturesAsync() now supports RadialLines, allowing one template to generate multiple connected features from a common origin. This is useful for utility network workflows, such as creating multiple service connections from a transformer or distribution junction.

Geometry builder tools also preserve true-curve geometries when creating offsets, buffers, and intervals. This ensures that assets generated along curved roads, pipelines, water mains, and other infrastructure retain their intended shape.

FeatureTemplateRelationship.NumberOfRelatedFeatures indicates how many related records a template can create. Applications can use this value to more accurately communicate editing results when a single operation creates a feature and additional inspection, maintenance, or asset records.

Shared template performance has been improved through optimized caching of template definitions. This reduces service queries and processing overhead for complex group and preset templates, resulting in faster template loading and a more responsive editing experience.

Named utility trace functions

Named utility network trace functions authored in ArcGIS Pro 3.7 and ArcGIS Enterprise 12.1 or later are supported through new UtilityTraceFunction constructors and the FunctionName property.

Named trace functions help applications distinguish outputs when multiple calculations use the same network attribute and operation with different criteria. For example, a trace can calculate separate load totals for residential and commercial customers using conditional aggregations on the same attribute. By exposing the author-defined function name, applications can identify, label, organize, and display trace results without extra inference logic.

Utility Network schema version 8

Utility Network schema version 8 is now supported for non-telecom networks authored in ArcGIS Pro 3.7 and ArcGIS Enterprise 12.1 or later.

You can continue to work with schema version 8 datasets for tracing, rule-based editing, association management, topology validation, and offline workflows, including generating and synchronizing mobile geodatabases. This provides compatibility with utility networks created using the latest ArcGIS Utility Network releases. Applications for electric, gas, water, and sewer workflows can keep using current APIs and workflows without modification. Telecom utility network datasets are not supported in this release.

Multi-user branch version workflows with ServiceGeodatabase

ArcGIS Maps SDKs for Native Apps introduce ServiceGeodatabase.RefreshAsync() for applications that work with named branch versions in ArcGIS Enterprise 12.0 and later.

This API supports long-lived workflows that use a ServiceGeodatabase configured with Persistent. The SDK manages version sessions and moments while supporting ArcGIS Enterprise’s multiple-reader, single-writer branch-version concurrency model. For background, see Version locking models. For example, applications can keep a map open on a shared named version while other users review, edit, reconcile, and post changes. The SDK maintains a consistent moment for queries and analysis so feature queries, utility network traces, and association queries run against a consistent state of the version.

The SDK automatically advances the client moment to the latest edit moment after local add, update, and delete operations, ServiceGeodatabase.ApplyEditsAsync(), or utility network operations such as UtilityNetwork.ValidateNetworkTopology().

When applications are ready to incorporate edits committed by other users, they can call RefreshAsync(). This advances the client moment to the latest server edit moment, refreshes affected layers, and redraws displayed features without recreating the ServiceGeodatabase or manually managing version moments.

Geodatabase

Sync attachment keywords

When working with a feature service through the Native Maps SDKs, SyncCapabilities.SupportsAttachmentKeywords reports whether the service supports syncing attachment keywords. If supported by the service, GenerateGeodatabaseParameters.SyncAttachmentKeywords defaults to true when you manually take feature data or a map offline, so attachment keywords are included. When taking a web map offline with offline settings customized in Portal, the value configured in the portal is used.

Map view

Changing view insets

Normally, changing MapView.ViewInsets does not change the rendered map area, since the map is not locked to a specific Viewpoint. To keep the current viewpoint when insets change due to the resizing of UI elements, set the new MapView.insetsViewpointAdjustment property to InsetsViewpointAdjustmentType.PreserveCenter. This property has no effect when LocationDisplay is active and LocationDisplayAutoPanMode is set to anything other than Off.

Accessibility-aware label text scaling enabled by default

Label text generated from LabelDefinition classes on layers in the operational layers collection now scales with the device’s accessibility text-size settings by default. This capability can display larger labels than in previous releases, improve label legibility for users who increase system text size, and keep labels more consistent with the rest of the application’s user interface. To preserve the previous behavior and keep label text at a fixed size regardless of accessibility settings, set UseSystemTextScale to false on MapView.

Feature form

Attachments form element enhancements

AttachmentsFormElement was introduced in 200.5 with basic attachment editing support via a FeatureForm. In 300.1, it brings additional capabilities from web maps into the feature form experience. New overloads of AttachmentsFormElement.AddAttachmentAsync() allow attachment filenames to be calculated from an Arcade expression. New Attachment objects are also automatically assigned the element’s keyword. Form designers can define criteria enforced by AttachmentsFormElement, including allowed attachment types, maximum file size or video/audio duration, and minimum or maximum number of attachments.

Layer

Enhanced VectorTiledLayer

Several ArcGISVectorTiledLayer enhancements have been added including:

  • Improved ArcGISVectorTiledLayer for better rendering performance, with layer load times reduced by up to 25% and memory usage reduced by up to 20%.

  • MapView now supports identify on vector tiled layers that include feature IDs. Identify operations return an IdentifyLayerResult for each matching vector tiled layer, with VectorTileFeature results that include attributes and the associated VectorTileStyleLayerType. Geometry is returned only for point-based features, such as circle and symbol styles.

  • You can author vector tiled layers to have feature IDs by retaining relevant attributes when publishing from ArcGIS Pro. While authoring ArcGISVectorTiledLayer content with feature IDs, include only required attributes. Including too many attributes can increase tile size and negatively affect rendering performance and memory usage.

Vector Tiled Layer Identify

Raster

Build and manage raster pyramids

You can now inspect, build, and delete pyramid overviews for file-based Rasters using the RasterPyramids class. Pyramid overviews are typically created to improve performance for rasters that can take longer to display due to being large in size or highly compressed. Use the PyramidInfo property to access relevant information that can be determined about existing pyramids on the Raster, such as the number of pyramid levels, compression method, resampling method, and the file path to an external pyramid file. The DeletePyramids() method will delete pyramid overviews stored in an external .ovr file; it will not delete pyramids embedded in the source raster file. The BuildPyramids() method will start an operation that builds pyramid overviews in an external .ovr file, which can be monitored for progress or cancelled. Parameters can optionally be set to define the number of levels, the resampling method, and the compression method used.

New close method to release native resources

The close() method has been added to Raster to provide deterministic release of native resources, such as file handles, associated with file-based rasters. This is especially important in garbage-collected environments, which do not provide deterministic destructors and cannot guarantee timely resource cleanup. Call close() on a Raster when it is no longer in use.

Offline maps

Geospatial PDFs and raster files

In addition to tile packages and vector tile packages, you can now specify a georeferenced PDF or any supported raster file when using a locally referenced basemap in an offline map. The ReferenceBasemapFilename property can be set in the OfflineSettings of a web map or when configuring offline map parameters in an OfflineMapTask.

Editing

Track previewed geometry changes during edit interactions

You can now subscribe to the new InteractionPreviewChanged event on the GeometryEditor receive’s updates about the state of the geometry during an ongoing edit interaction, for example during a vertex creation or move, or when moving, scaling, or rotating a geometry or part.

The GeometryEditorInteractionPreviewEventArgs event parameter provides access to the preview geometry, which represents the geometry that would be created if the ongoing interaction were completed. It also includes the interaction element, which identifies the element being edited, and the interaction type, which indicates the type of interaction.

This event allows you to provide real-time feedback as users edit geometries. For example, you can show alerts or update symbology when the preview geometry meets criteria such as exceeding a maximum area or length. Alternatively, if using the ProgrammaticReticleTool, you can use the information provided by this event to enable and disable controls for vertex placement depending on whether or not the previewed geometry intersects the geometry of an existing feature.

interactionPreviewChanged-geometryeditor-relnotes300-1

Popups

Alternative text for popup media

You can now access the alternative text for popup media with the new PopupMedia.AlternativeText property.

Arcade

Support for new Arcade version

The .NET Maps SDK now offers partial support for Arcade 1.36 and Arcade 1.37.

Updated functions

GetKeys, GetValues, Count now accept Pixel and Voxel types.

The zero-argument Portal overload is not supported and returns null.

GetEnvironment updates are not supported:

  • activePortal is set to null
  • availablePortals is set to an empty Array

New constants

Support for NaN has been added.

New profile

Support for the Form Attachment Filename Calculation has been added.

Indoor positioning

Enhanced geometry-aided indoor positioning

Improved reliability during initial positioning, a refined step detection algorithm, and reduced positioning lag for a more responsive experience.

Android only: Robust beacon scanning

Bluetooth beacon signal scanning now automatically restarts every 5 minutes to mitigate OS-level restrictions on long-running radio scan sessions.

Point cloud layer

Customizations

Point cloud layers are now supported in LocalSceneView, extending point cloud visualization from global scenes to local scenes.

You can now customize how a PointCloudLayer is displayed using renderers and filters. Use a PointCloudClassBreaksRenderer, PointCloudRGBRenderer, PointCloudStretchRenderer, or PointCloudUniqueValueRenderer to symbolize points using point cloud layer attributes. You can also control point size and modulate point colors to emphasize patterns in the data.

Use a PointCloudValueFilter, PointCloudReturnFilter, or PointCloudBitfieldFilter to show points that match attribute values, LiDAR return types, or bit flags. Combining renderers and filters helps you distinguish and focus on features such as buildings, vegetation, and ground surfaces in a point cloud.

PointCloudLayer renderers and filters are only supported in LocalSceneView.

Point cloud visualization changing as renderers and filters are applied

Projection engine

GDAL support

There are no updates to the coordinate systems and transformations tables, or to the grid transformation files in the Projection Engine Data download in this release. However, the Projection Engine Data download has been updated with the latest GDAL support files. If your app works with raster data, including for display or analysis, you should download and reference the GDAL support files from the latest Projection Engine Data download. You must reference GDAL support files from the download that matches your version of ArcGIS Maps SDK for .NET. For details, see GDAL support files in the Spatial references topic.

SDK enhancements

MAUI .NET 10

.NET 10 is now the minimum .NET version required for building .NET MAUI apps using the ArcGIS Maps SDK for .NET version 300.1.0.

Accessibility

  • WinUI GeoViews and attribution text bars now show a focus ring when selected.
  • Improved callout accessibility across iOS, Android, and WPF by supporting text scaling and constrained viewports.

Miscellaneous

  • Improved performance for most asynchronous methods. Task-related memory allocations are reduced by as much as half for some methods.

Local Server

No updates

There are no Local Server updates with this release.

Breaking API changes

There are no breaking changes for this release.

Behavior changes

  • When loaded, an ArcGISSceneLayer that contains labels now has ArcGISSceneLayer.LabelsEnabled set to true by default.
  • UtilityNetwork.CanAddAssociationAsync() now restricts point features to a single containment association, consistent with ArcGIS Pro.
  • ServiceGeodatabase.ApplyEditsAsync() and ServiceFeatureTable.ApplyEditsAsync() now omit unchanged null attribute values and unchanged geometry from calls to FeatureTable.UpdateFeatureAsync(). This helps prevent unintended data loss in collaborative editing workflows and reduces update payload sizes.
  • Editing a sync-enabled mobile geodatabase that contains utility network source tables now requires the Advanced Editing user type extension, even when editing related or stand-alone non-utility network tables. Developers should ensure appropriate licensing for offline editing workflows that include utility network source data.
  • ISharedTemplateSource.AddFeaturesAsync() now applies shared template edits as a single transaction. If the operation fails, all changes are rolled back.
  • SharedTemplate can now be loaded and used without obtaining references to all tables referenced by the template, simplifying initialization and reducing setup complexity.
  • The Projection Engine Data download contains updated GDAL support files. You must reference GDAL support files from the download that matches your version of ArcGIS Maps SDK for .NET. See the Projection engine section and see GDAL support files in the Spatial references topic for more details.
  • Starting with this release, SurfacePlacement set to Relative uses the elevation from integrated mesh content. This applies when a Scene contains an IntegratedMeshLayer or an Ogc3DTilesLayer configured as an integrated mesh.
  • Geometry Z values are treated as offsets from the mesh elevation. A Z value of 0 places the geometry directly on the mesh surface. Positive Z values position the geometry above the mesh, while negative Z values position it below the mesh by the corresponding offset.
  • Viewpoint constructors no longer throw when passed geometry objects with a null spatial reference. If the spatial reference is null, the geometry coordinates will be interpreted in the view’s spatial reference.
  • LoadStatusEventArgs now has a public constructor. This will allow full ILoadable implementations for CredentialPersistence subclasses.
  • Templates: WinUI VSIX templates have been migrated to dotnet new.

Deprecations

API deprecations

There are no API deprecations.

OS and framework deprecations

  • Support for .NET 8 and .NET 9 is now deprecated for WinUI and WPF. Next release will require .NET 10 across all targets and frameworks.

  • Support for Android 9 (API 28) is deprecated. Release 300.1 is the last release that supports Android 9. Android 10 (API 29) will be the minimum supported version in the next release.

  • Support for .NET 9 for .NET MAUI has been removed. A minimum of .NET 10.0.40 is now required when building .NET MAUI apps.

  • Support for macOS Sonoma (14) has been removed. A minimum of macOS Sequoia (15.6) is now required when building .NET MAUI apps.

  • Support for iOS 17.0 has been removed. A minimum of iOS/iPadOS 18.0 is now required when building .NET MAUI apps.

Issues resolved

  • Under certain circumstances, FeatureForm.FinishEditingAsync() persists attribute edits even when the attempt to save attachment or utility association edits fails (and throws an error). With this fix, the entire edit operation is performed within a transaction: either all changes are saved or none are saved.
  • True curves are not supported in scene view using dynamic rendering mode.
  • Labels for features removed by a display filter are not correctly removed from the map.
  • BUG-000178816, BUG-000182448, BUG-000184569, BUG-000185067, BUG-000185126, BUG-000185503 - ArcGISFeatureTable fails to load with an "Arcade expression requires a later version of Runtime" error.
  • BUG-000183130 - SubtypeFeatureLayer does not honor FeatureLayer.ScaleSymbols when enabled by Map.ReferenceScale.
  • BUG-000184045 - SubtypeFeatureLayer does not evaluate the FeatureSetByID() Arcade function.
  • The maximum size of raster data used to populate a ContinuousField, DiscreteField, or BooleanField is 2 GB, which is equivalent to 23170 x 23170 pixels.
  • BUG-000185647 - Version 300.x crashes when adding certain feature layers with dynamic rendering mode
  • BUG-000182210 - Map view interactions freeze after closing the Share sheet on physical Samsung devices in ArcGIS Maps SDK for .NET.
  • BUG-000186334 - Map freezes when sharing files with a Samsung device on ArcGIS Maps SDK for .NET 300.0 MAUI.
  • BUG-000184807 - Observing a flickering issue after sleep and resume in ArcGIS Maps SDK for .NET 200.8.1.
  • BUG-000126035 - Repeatedly reopening an Android Activity containing a MapView with a vector tile basemap saturates the RAM of the Android device and makes the application unresponsive in ArcGIS Maps SDK for .NET.
  • Fixed portal item classification not being populated for portal items retrieved via FindItemsAsync().
  • Fixed an emulator crash where a LocalSceneView thread would attempt to draw despite the emulator having an unsupported OpenGL version.
  • Fixed Popup.GetFormattedValue not honoring date format settings on iOS.
  • Fixed callout leader lagging behind target point at screen corners on iOS.
  • Fixed an issue where GeoView in Android could render with the wrong size if a resize was triggered directly after initialization.
  • Fixed cache staleness logic to use the Expires header instead of the If-Modified-Since header. The earlier approach occasionally caused stale tiles and resources to be shown after server-side changes.
  • Fixed expected redirect URL for out-of-band authentication following changes to the ArcGIS Online June 2026 update.
  • Fixed a stack overflow crash when running authentication credential challenges.

Known issues

  • The slope and aspect functions require input data in a shape-preserving (conformal) projected coordinate system, and the data’s vertical (elevation) units must match the horizontal units of that coordinate system.
  • ViewshedFunction is supported only with ContinuousField in a projected coordinate system. Geographic coordinate systems such as WGS84 are not supported in this release.
  • A FieldAnalysis can be displayed in MapView or SceneView only when the result spatial reference matches the view.
  • Raster data with 64-bit float or integer-based pixels is not supported.
  • Raster data with u32 integer-based pixels is supported only when values are within an i32 range. u32 values outside an i32 range are not supported.
  • The maximum size of a ContinuousField, DiscreteField, or BooleanField used in a FieldAnalysis is 1 GB, which is equivalent to 16384 x 16384 pixels.
  • Gaussian splat layers do not support modifying opacity.
  • (Windows only) Evaluating a chain of multiple spatial analysis API functions at once can cause slow evaluation times. You can improve performance by breaking down your analysis into smaller steps. Do this by evaluating a single FieldFunction then creating a new FieldFunction with the resulting Field. Build your analysis by evaluating each step, one at a time, using the resulting Field from the previous step.

Sample updates

New Samples

Enhancements to samples

  • In this release, the minimum OS version for the MAUI iOS and Mac Catalyst sample viewer has been raised to iOS/macOS 18 to align with the SDK’s system requirements.
  • MAUI sample viewer has been updated to target .NET 10.
  • Improvements have been made to sample viewer load and startup time.
  • Fixed hyperlink navigation in WPF Sample viewer README files.

Toolkit updates

This release includes the new OfflineMapAreasView, support for the new FeatureForm attachments API changes, and a variety of bug fixes and improvements across different controls.

Platform support updates

Building with the .NET MAUI Toolkit now requires .NET 10 and MAUI 10.0.40 or greater.

New features and enhancements

  • Added a new OfflineMapAreasView control for managing and creating offline map areas.
  • FeatureFormView enhancements include:
    • Added support for the new FeatureForm attachments API changes.
    • Added support for viewing, adding, and deleting utility network associations.
  • SearchView enhancements include:
    • All focusable child elements now implement automation properties, improving compatibility with assistive technologies and screen readers.
    • Fixed suggestions not showing when multiple geocoders were connected on WinUI.
    • Fixed an issue where a user-set geocoder could be overwritten by the default geocoder.
    • Fixed excess result selection and deselection events being fired on MAUI.
  • UtilityNetworkTraceTool now uses UtilityTraceFunction.FunctionName to uniquely identify and label trace function results. This simplifies workflows that use multiple trace functions with similar calculations by exposing the author-defined function name directly in the component.
  • PopupViewer now supports setting alternative text on media.
  • Fixed FloorFilter not displaying floors on iOS devices.
  • MeasureToolbar now displays measure information during ongoing interactions.
  • BasemapGallery now ignores ArcGIS Online organization and takes into account item ID when comparing layer URLs.
  • Added a new UI testing framework.
  • The current suite covers Compass, ScaleLine, and SearchView. More coverage will be added in future releases.

Resolved issues

  • The known issue in version 300.0 where referencing ArcGISRuntime.Maui.Toolkit caused compilation errors on .NET MAUI Android when targeting .NET 10 no longer applies to this release.