This page provides details about enhancements in the 200.6 release of ArcGIS Maps SDK for .NET. It also lists this release's deprecations, resolved issues, known issues, and more.
Enhancements
Geometry editing
Geometry guides
When using the GeometryEditor
with SnapSettings.IsEnabled
, you can now make use of geometry guides to help you create rectilinear features and make consistently aligned changes to your geometry. When using either the VertexTool
or ReticleVertexTool
, and SnapSettings.IsGeometryGuidesEnabled
is true, additional visual cues appear to which you can snap your edits. Each guide appears only when applicable, helping you to easily and quickly make the following types of geometry edits.
- Create 90 degree corners.
- Create parallel segments.
- Extend the length of existing segments while maintaining the segment direction.
- Snap to existing segments or vertices of the edited geometry.
A new SnapSettings.IsFeatureSnappingEnabled
property can be used to quickly enable or disable existing feature and graphic snapping functionality, independently of geometry guides.
Haptic feedback when snapping geometry edits
Haptic feedback can contribute to a richer app experience for your users. When used to confirm or highlight app state changes based on user interactions, this can help increase confidence in app usage. Haptic feedback can now be enabled for interactive geometry editing with snapping, with haptic feedback occurring when an edit is snapped to a feature, graphic, or geometry guide. No haptic feedback occurs when the edit unsnaps. To provide custom haptic feedback for snapping, see the new GeometryEditor.SnapChanged
event described below.
Haptic feedback occurs when snapping using the GeometryEditor
, SnapSettings.IsHapticFeedbackEnabled
is true, and haptic feedback is supported by the device.
Snap changed event
When using the GeometryEditor
with snapping, the new GeometryEditor.SnapChanged
event can help you to provide additional, confirmatory effects to your app. For example, if the built-in haptic feedback described above does not suit your needs, you can use this event to provide custom haptic feedback using haptic patterns that differ from the built-in functionality. Alternatively, you may want to augment your app with audio affects to provide alternative or additional user confirmation of a snap where haptics are not available. For example, users cannot feel haptic feedback if they are working in the field with gloves or if they are working on a desktop.
The SnapState
parameter of this new event indicates whether the snap was to a feature or graphic, to a geometry guide, or if the edit position became unsnapped.
User experience enhancements
This release includes a number of improvements to the reticle user experience, including eliminating the jitter seen during map pans, more consistency when moving vertices and hovering the reticle crosshairs over vertices, and improved polygon appearance for island and concave shapes.
Attribute editing
Support for attribute rules in sync-enabled geodatabases
With ArcGIS Enterprise 11.4 or later feature services, sync-enabled geodatabases can execute immediate calculation and constraint rules for client evaluation during editing. These custom rules automatically populate and validate permissible combinations of attribute values, enhancing the user editing experience and ensuring data integrity for geodatabase datasets. GenerateGeodatabaseParameters.SyncAttributeRules
is enabled by default when supported by the service. To verify if attribute rules can be downloaded with the geodatabase, check SyncCapabilities.SupportsAttributeRules
on the feature service.
Support feature form definitions on SubtypeSublayer
The SubtypeSublayer
class now exposes a FeatureFormDefinition
property, allowing those layers to participate in feature form editing.
A IFeatureFormSource
interface has been added which contains a FeatureFormDefinition
property. This interface is implemented by the ArcGISFeatureTable
, FeatureLayer
, and SubtypeSublayer
classes. You can now get a form definition for a feature from an underlying layer or table that implements IFeatureFormSource
.
Edit with a feature form when a definition does not exist
A new FeatureForm
constructor takes an ArcGISFeature
and creates a feature form using the definition on the input feature's layer or table. If a feature form definition isn't found, a default form is generated. This allows feature form editing of features whether they have an associated form definition or not and simplifies the creation of the feature form.
The FeatureForm
constructor that takes an ArcGISFeature
and a FeatureFormDefinition
has been deprecated. Use the new constructor (that only takes a feature) instead.
Support for TextFormElement input type
A new TextFormElement
can be added to a feature form to show blocks of text, such as editing instructions or information about the feature being edited. Called an "Info" element in the Field Maps and MapViewer designer, this new element type can show plain text or rich text formatted using Markdown. Attribute or expression values can be substituted into the text and updated when FeatureForm.EvaluateExpressionsAsync()
is called.
The toolkit component supports the most common Markdown formatting options, such as bold, italics, headings, and lists.
Arcade
This SDK now supports Arcade 1.29
The following functions have been added:
Feature
checks if a feature satisfies an Esri Standardized SQLIn Filter where
clause expression.Standardize
translates the characters in a filename using the rules described in ArcGIS Pro's Export Attachment tool.Filename Centroid
has been updated to offer the Label Point algorithm along side the geometric algorithm.
Dynamic Entities
Construct from a portal item
You can now create a DynamicEntityLayer
or ArcGISStreamService
from a stream service or feed portal item. There are new constructors that take a PortalItem
on DynamicEntityLayer
and ArcGISStreamService
classes.
A new read-only ArcGISStreamService.PortalItem
property is now exposed and is only set if the stream service object is created with the new constructor.
OGC API - Features
Explicitly set the query expression language
- This release adds a new
OgcFeatureCollectionTable.PopulateFromServiceAsync()
overload to allow for explicitly setting the language that theQueryParameters.WhereClause
is written in. OGC feature services will use this property to properly format feature population requests. OGC feature services can support multiple languages such ascql2-text
andcql2-json
, and this parameter allows the user to choose the language that thewhere
is written in.Clause
Utility networks
Utility network synchronization
Ahead-of-time workflow: Utility networks downloaded from an offline map area now support editing and bidirectional synchronization when the web map's advanced offline utility network option is set to "
for ArcGIS Enterprise 11.4 or later portals and feature services.
On-demand workflow: For offline editing of utility networks with full topology, download the ArcGIS Enterprise 11.3 patch, when available, to take full advantage of feature service synchronization.
Utility network sync capabilities
New capabilities for synchronizing utility networks with full topology are now available. SyncCapabilities.SupportsUtilityNetworkTopologySync
indicates support for both editing and bidirectional synchronization of the utility network. Conversely, SyncCapabilities.SupportsUtilityNetworkTopologySyncDownloadOnly
signifies that the utility network is read-only, allowing edits only through download sync direction. Without support for synchronization, the utility network can only be downloaded and replaced by setting GenerateGeodatabaseParameters.SyncModel
to SyncModel.None
.
Flow direction-based tracing
With the upgrade to utility network schema version 7 in ArcGIS Enterprise 11.3 or later feature services, upstream and downstream traces can now leverage digitized direction in both online and offline utility networks by setting UtilityTraceConfiguration.UseDigitizedDirection
. This enhancement removes the need for modeling subnetwork controllers or subnetworks for directional tracing, which is particularly beneficial for stormwater and wastewater assets.
Additional metadata for utility network editing
UtilityAssetType
now includes properties for container split policy and linear connectivity policy, enabling applications to develop utility network-aware editing tools for snapping, moving, vertex-editing, and performing split container operations.
Editing
Advanced Editing license check
Creating or editing features in a named version requires an Advanced Editing extension license with ArcGIS Enterprise 11.2 or later feature services. This license validation is now performed during the creation process using ServiceGeodatabase.CreateAsync()
, as well as during add, update, or delete operations on features and attachments.
Editing subtypes
When using SubtypeFeatureLayer
, you can customize edit capabilities at the subtype level by adjusting SubtypeSublayer.AllowsEditing
property. The enable
property on subtype layers in web maps are now honored and persisted with Native Maps SDKs, allowing you to restrict the addition, modification, or deletion of features for certain subtypes.
Symbols
Support for CIM spec 3.4
ArcGIS Maps SDKs for Native Apps now support the latest CIM spec version 3.4. ArcGIS Pro 3.4 will be required to author maps targeting CIM spec version 3.4.
Military symbology
This release adds support for three additional Military symbology dictionary styles following new standards: MIL-STD-2525D Change 1, MIL-STD-2525E, and APP-6(E).
Scenes (3D)
Grids in a scene view
This release adds support for displaying coordinate system grids in a SceneView
. Grids in a SceneView
are the same as grids in a MapView
with the exception of using screen anchored placements. Screen placement of grid labels for MGRS, UTM, and USNG grid types are not currently supported in a SceneView
.
Since grids are now supported for both MapView
and SceneView
, the property has been moved to the GeoView
base class: GeoView.Grid
.
3D basemaps support
This release adds support for 3D basemaps. A 3D Basemap
can be constructed from a url or portal item and then added to a scene. Layers in a 3D basemap are added to the basemap's Basemap.BaseLayers
collection. Currently, only buildings layers and vector tiled layers are supported. If present in the Basemap
, layers containing trees, points of interest, or labels will report a failed to load
status.
KML
Create and edit KML track and multi-track
With this release, you can now create and edit KML tracks, which allows the visualization of a series of geographic points along a path with timestamps. It is ideal for applications that require time-sequenced data, such as route mapping or tracking of movement.
Complex track structures can be constructed as a multi-track, enabling the consolidation of multiple KmlTrack
objects into a single KmlMultiTrack
object. This facilitates handling multiple journeys or paths within a single file.
Editing KML extended data
In this release, the SDK fully supports editing extended data within KML elements and provides greater flexibility to add custom metadata.
Other KML geometries
Support for creating KmlMultiGeometry
is added with this release, allowing users to combine multiple geometry types (points, polylines, polygons, etc.) into a single feature. This also allows for a nested tree structure of geometries in KML.
This release adds a new KmlModel
class. You can instantiate instances of KmlModel
with a URI to a Collada model (local or network), a geographic location (point), the altitude mode, and optionally scale and orientation values.
Indoor positioning
Indoor positioning configuration
The indoor positioning definition, which stores information to create an IndoorsLocationDataSource
(ILDS), has a new configuration property called IndoorPositioningDefinition.Configuration
. This configuration is specified in an IPS-aware map using ArcGIS Pro. ILDS automatically uses this configuration and you can programmatically alter its properties, if required.
Support for fully disconnected offline workflows
You can now consume mobile map packages (.mmpk) that contain both the indoor map and indoor positioning data. These types of mobile map packages allow you to build applications that work completely offline while displaying the blue dot indoors.
Beacon scanner
This release introduces a BeaconScanner
class that picks up radio signals from any surrounding beacons. The BeaconScanner
can be used to set up and maintain an IPS deployment, and the information from it can be used to update the IPS_Beacons feature class.
At this initial release, BeaconScanner
includes information about the parsing battery level of detected beacons and supports Kontakt.io beacons.
Errors and warnings
The behavior of errors and warnings has been updated slightly. Errors, such as missing or incomplete IPS data, are now only triggered during the startup phase of ILDS. Warnings can occur while ILDS is running. They indicate a possible degradation in the quality of the calculated indoor position. A warning is issued once at the end of a position calculation cycle, and then reset to null once ILDS is running smoothly. The same warning will not be triggered again in subsequent calculation cycles.
Projection Engine updates
Coordinate systems and transformations
- Available coordinate systems and transformations have been updated to EPSG v11.015.
- New vertical transformations based on geoids, quasi-geoids, or other conversion grids can transform to or between gravity-related vertical coordinate systems for Australia, Canada, Czechia, and Germany.
- New vertical transformations for EGM96 and EGM2008 heights are using bicubic natural spline interpolation used by NGA.
- Geographic transformations between NAD 1927 and NAD 1983 (various re-adjustments) that are using NADCON, HARN, and GEOCON grids are deprecated but remain available in the software. Transformations using these grids will appear at the bottom of a list of transformation paths. The recent NADCON5 transformations available in the Projection Engine Data supplemental download should be used instead.
SDK enhancements
- ArcGIS Maps SDK for .NET project templates now provide an option to target .NET 9.
- Authentication enhancements:
In continuation to new Authentication types introduced in last release, there are two new additional types introduced in this release:OAuthUserCredential
: A new type that provides secure, refreshable access tokens for accessing protected services using the "authorization code" workflow. This class replacesO
as the preferred OAuth 2.0 approach for user authentication, and needs anAuth Token Credential OAuthUserConfiguration
to be registered instead of ServerInfo.Access
: A new type for managing credential that accesses token-secured ArcGIS content and services. This class enables generation of access token using your username and password, or using secondary network authentication (IWA or PKI). This replaces legacyToken Credential ArcGIS
. Note that ArcGIS system strongly recommends that you implement a secure OAuth 2.0 flow whenever possible, instead of directly prompting user for their password. Refer to "behavior changes" section to learn how these changes may affect existing ArcGIS Maps SDKs for Native Apps apps.Token Credential
- Fixed a bug in
Authentication
where creating a federated service credential also regenerated and replaced the portal credential.Manager. Generate Credential Async() - In this release we have introduced a cross-platform API for handling server certificates. AuthenticationManager now has a
Remote
property that takes a callback for handling server certificates. Here is an example onn how to use this property:Certificate Validation Callback
AuthenticationManager.Current.RemoteCertificateValidationCallback = (a,b,c) => return true; // accept all certificates;
It can also be set on startup via Use
in the configuration API:
ArcGISRuntimeEnvironment.Initialize(
config => config.ConfigureHttp(
httpConfig => httpConfig.UseRemoteServerCertificateValidationCallback( YourCallbackHere )
)
);
.NET Toolkit enhancements
Following is a list of enhancements and bug fixes in this release:
- Introduced
Feature
control for WinUI and UWP.Forms - Overhauled
Popup
control to useViewer Popup
for WinUI and UWP.Elements - Added dark mode support for
Symbol
andDisplay Floor
controls in WinUI and UWP.Filter - Fixed an issue where the
Search
andView Floor
clear icon was hard to see in .NET MAUI.Filter - Fixed
Symbol
appearing like dots on some Android devices.Display - Corrected
Bookmark
template updates to ensure they apply to all rows on iOS. - Fixed Basemap Gallery View Style not switching to Grid in .NET MAUI on Windows.
- Fixed SearchView results display to fit correctly on screen in .NET MAUI.
- Fixed an issue handling image attachments with Unicode characters in the filename in Feature Forms.
- Localized "View" links in the PopupViewer.
Local Server enhancements
There are no Local Server updates with this release.
Breaking API changes
- The
ArcGISStreamService.Source
property is now nullable. The url will only be null when creating theArcGISStreamService
using thePortal
constructor and if the item'sItem service
property is empty, typically when the item is not loaded or if the item is not valid for creating a stream service.Url
Behavior changes
-
Geometry
now supports true curve input geometries, producing densified curves in the result geometries.Engine.offset -
The default color for grids in
MapView
has been changed to white. This applies to any grid with one or multiple levels.
- When challenged for a token credential and a matching
OAuthUserConfiguration
is available on the AuthenticationManager, we now generate anOAuthUserCredential
instead ofO
.Auth Token Credentials - Transparently-generated federated server tokens (e.g. via AuthenticationManager.GenerateCredentialAsync) are now of type
Access
instead ofToken Credentials ArcGIS
.Token Credential - With this release, support for TimestampOffset fields is enabled by default, changing the behavior of Date fields to only use DateTime values. To revert to the previous behavior, set
ArcGIS
toRuntime Environment. Enable Timestamp Offset Support false
when initializing your app. See blog post to learn more.
Deprecations
API deprecations
- The
FeatureForm
constructor that takes aFeatureFormDefinition
is deprecated. Use the constructor that takes only anArcGISFeature
instead.
Popup
is marked deprecated at this release. Use Toolkit'sManager Popup
for viewing feature information andViewer Feature
for editing features.Form View ArcGIS
is deprecated and replaced byToken Credential Access
.Token Credential O
is deprecated and replaced byAuth Token Credential OAuthApplicationCredential
andOAuthUserCredential
.Authentication
is deprecated. UseManager. Generate Credential Async(...) Create
methods on specific credential types instead.Async(...) - Support for the "implicit" OAuth flow is deprecated.
- The
kml
property onGeometries KmlPlacemark
is deprecated. Instead, useKmlPlacemark.KmlGeometry
to return a KML geometry type.
OS and framework deprecations
There are no OS framework deprecations with this release.
Issues resolved
Issues addressed in this release are listed below.
- BUG-000171542
Internal Nullability Violation
error for theDefault
property when working with feature layers hosted in Enterprise Portal and apps built with ArcGIS Maps SDKs for Native Apps version 200.5.Visibility
- BUG-000171844 Using scheduled updates with ArcGIS Maps SDKs for Native Apps incorrectly downloads entire new replica instead of incremental changes.
- BUG-000171919 Creating offline replica with a full utility network incorrectly requires that all layers from the feature service are included.
- BUG-000171920 OfflineMapTask can fail when including a utility network.
- ENH-000134743: Provide support for displaying a Grid in a 3D SceneView.
- Issue reported on Esri Community: Incorrect shadow rendering for buildings in relative to ground mode.
- Inconsistent dirty area creation when incorporating geodatabase delta with utility network association deletion.
- Persistent geodatabase file lock from an ahead-of-time download of a UN web map.
- Sublayer visibility should update based on scale in an offline map.
- Handle directional traces where the trace configuration is different from the tier's.
- Identifying a clustered feature layer without a popup definition does not return results.
- .NET Toolkit: - Windows: Cannot get thumbnail for an image file with Unicode in the name.
- Issue reported on Esri Community: PopupView fields visibility is ignored.
Known issues
BUG-000172414 Android Bluetooth scanning silently stops working after 10 or 30 minutes, impacting IndoorsLocationDataSource
and BeaconScanner
.
Android applications may experience startup crashes that throw an Invalid
when built in Release configuration for ARMv7 targets.
Changes in samples
New samples
Enhancements
- Updated Snap geometry edits to include geometry guides and highlight use of geometry editor haptic feedback on supported devices.
- Simplified Geodatabase transactions workflow by removing the sync with feature service functionality.
Bug fixes
- Corrected Add dynamic entity layer documentation to reference
ArcGISStreamServiceFilter
. - Addressed Statistical query group and sort crashes on .NET MAUI
Related topics
- System requirements for 200.6
- Install and set up
- Display a map (Tutorial)
- Product Life Cycle (Esri Support Site)