This page provides details about enhancements in the 200.7 release of ArcGIS Maps SDK for .NET. It also lists this release's deprecations, resolved issues, known issues, and more.
Enhancements
Geometry editing
Snap geometry edits using utility network rules
The utility network includes a set of rules to determine what features can connect to one another. For example, you can connect a fuse to an electric power line, but not to a gas pipe. You can now configure the interactive snapping behavior of a GeometryEditor
to account for these connectivity rules, helping you create true edits for utility network features that can be successfully validated.
You can now configure rule-based snapping by first creating SnapRules
that are applicable to the utility network asset type of the feature you will edit. If you are editing existing features, create the snap rules by passing the UtilityAssetType
to SnapRules.CreateAsync(UtilityNetwork, UtilityAssetType)
. If you are creating new features, pass the attributes of the new feature that includes the asset type to SnapRules.CreateAsync(UtilityNetwork, FeatureTable, Attributes
. Next, call SnapSettings.SyncSourceSettings()
to synchronize the snap sources of the GeometryEditor
to refer to these snap rules. Provide the SnapRules
that you have created and specify the SnapSourceEnablingBehavior
.
Snapping support for each sublayer of a subtype feature layer
When using GeometryEditor
snapping and working with subtypes, you can now configure each SubtypeSublayer
for snapping individually. Each SnapSourceSettings
that corresponds to a SubtypeSublayer
is now available from the SnapSourceSettings.ChildSourceSettings
collection of its parent SubtypeFeatureLayer
snap source, and can be enabled or disabled independently of its parent layer.
Popups
User input location support for Popups
Arcade expressions in popups can now use Popup.UserInput
to access information about the map location that was used to show the popup. For more information, see popup profile in Arcade.
Override the popup definition for an individual feature in a feature collection
Popup definitions can now be defined for individual features in a feature collection, allowing map authors to customize what a popup looks like for an individual feature instead of using the same definition for all features in the collection. Use FeatureCollectionTable.SetPopupDefinitionOverride()
to override the feature collection popup definition for a specific feature. When an identify method returns popups, the identify result will automatically have the overridden PopupDefinition
. You can also use FeatureTable.GetPopupDefinition(Feature)
to return the overridden feature-specific PopupDefinition
.
Support for user-configured popup chart colors
User-configured chart colors are now supported in popups. Use PopupMediaValue.ChartColors
to access the collection of colors defined for a popup when rendering charts in popups. For more information, see custom colors in pop-up charts in ArcGIS Online.
New utility associations popup element
A UtilityAssociationsPopupElement
is a new type of PopupElement
that gives you complete control over which associations are displayed through the use of the new UtilityAssociationsFilter
class. You can configure filters to only display associations of a particular type and role (such as content
or connectivity
), or that the feature on the other side of the association matches a particular network source, asset group, or asset type.
A PopupDefinition
with a UtilityAssociationsPopupElement
will be honored when included in a web map. You can also create or update a UtilityAssociationsPopupElement
and save it in a web map. Note that the UtilityAssociationsPopupElement
is not integrated into the "Popup" toolkit component at this time, but is a planned improvement.
Attribute editing
Check for unsaved edits in a feature form
FeatureForm
has a new FeatureForm.HasEdits
property that allows you to know if there are active attribute edits on the feature. You can use it to enable UI elements like buttons to prompt the user to Save or Discard the edits.
Utility network associations element in feature forms
When a feature form is created (using Map Viewer or Field Maps Designer) on a layer or table that is part of a utility network, elements can now be added to show features that are associated to the feature being edited. The association form elements show all the features associated in a particular way; for example, features connected to the feature being edited, features contained within the feature being edited, and so on.
The UtilityAssociationsFormElement
objects are now supported as part of the FeatureForm.Elements
collection. They support fetching the associated features and returning UtilityAssociationResult
objects that can be displayed in a user interface.
Form notifications when features are updated externally
When a feature is updated in a local geodatabase outside of the feature form editing experience, the feature form will reflect the feature's changes when Feature.Refresh
is called. This can occur when there are attribute rules that run for the feature that update the geodatabase. Feature form handles this by an observed change to FieldFormElement.Value
as the feature's attribute is updated via to a call to Feature.Refresh
.
Real time
Query dynamic entities
You can now query a DynamicEntityDataSource
to find dynamic entities that meet spatial and/or attribute criteria. Because dynamic entities change over time, the query returns a collection of entities that match the DynamicEntityQueryParamaters
at the moment the query is executed. Although the number of dynamic entities in the result set is fixed, you can monitor these entities and be notified when new observations are received. This is useful for scenarios such as: finding a flight with a particular ID, identifying all first responders in the same task team, or returning all emergency vehicles currently within a specified distance of a reported incident.
Layers and tables
Improved performance of feature layers in a scene
In this release, performance of feature layers in 3D has been improved for line and polygon geometries. The improvement is pronounced when the layer contains a significantly large number of vertices. This improvement can result in 3 to 5 times increase in draw times and a lower CPU usage.
Support for subtype group tables
Similar to SubtypeFeatureLayer
, subtype group tables allow each FeatureSubtype
in a non-spatial object class to have their own query methods, edit operations, popup definitions, and more.
If a web map contains a subtype group table, the ArcGISFeatureTable.SubtypeSubtables
collection will be populated with SubtypeSubtable
objects when the web map is loaded. You can also create, configure, and add new SubtypeSubtable
objects to this collection and save them in the web map.
Load a WMTS layer from a portal item
With this release, you can now load a WmtsLayer
from a portal item.
Map view
Support for image overlays in map views
MapView
now supports image overlays; previously only supported in scene views. You can use an ImageOverlay
to quickly render frequently changing images such as realtime sensor data. For example, to display a dynamic weather system, each frame from the weather radar is represented as a static image. This image is constantly updated via a new ImageFrame
as new data comes in to give a fast-refreshing display.
Arcade
Support for new Arcade version
The SDK now supports Arcade 1.31.
The following functions have been added:
- Geotrigger profile support for the Data Access bundle.
- Different curve types support in geodetic geometry functions.
Indoor positioning
Adaptive radio positioning
Indoor positioning accuracy has been improved using enhanced algorithms in our indoor positioning system (IPS) engine. The indoor location data source (ILDS) now caches statistics on received radio signals and uses the cached data to deliver more accurate positions in subsequent sessions. In addition to this new feature, the behavior of the blue dot on Android phones has been improved. Due to poor quality built-in sensors, some Android phones struggle to provide the same level of positioning accuracy as phones with higher quality sensors. The new adaptive radio positioning algorithm will mitigate this by continuously adjusting the received radio signals so that our IPS engine can calculate more accurate indoor positions.
Stand still filter
The user experience when standing still has been improved. A new filter detects when the user stops walking and locks the blue dot. If the IPS engine receives more accurate positions during this stationary period, the position of the blue dot is slowly updated.
Improved startup
During the startup phase, the IndoorsLocationDataSource
(ILDS) response has been improved when a sensor fails to start or when permissions are missing. When the ILDS is running, alert handling from sensors has been enhanced and the ILDS now presents appropriate warnings.
Projection Engine
Coordinate systems and transformations
- Available coordinate systems and transformations have been updated to EPSG v12.002.
- The names of EGM vertical coordinate systems have been revised to align with the official EPSG names.
- EGM2008 geoid transformations in the behind-the-scenes processes have been updated to use the official NGA methods.
- ArcGIS Coordinate Systems Data supplement component now includes new geographic transformation grids for Germany and the United Kingdom, as well as new vertical transformation models for Bonaire (Dutch Caribbean), European continent (EVRF systems), Finland, and Slovenia.
SDK enhancements
- .NET MAUI applications now require .NET 9.
- For WinUI apps, .NET Maps SDK now includes support for Native ahead-of-time (AOT). AOT support for WinUI Toolkit controls will be coming in a future release.
- ImageOverlays (
ImageOverlay
), previously supported forSceneView
, are now also supported forMapView
. - NMEA enhancements
- Added the
NmeaLocationDataSource.SentenceReceived()
event inNmeaLocationDataSource
to facilitate easier handling and parsing of data from NMEA sentences in applications. - New properties have been introduced to access
latitude
,Error longitude
, andError magnetic
from NMEALocation.Variation
- Added the
- The
ArcGISPortal
class now allows for the retrieval of 3D basemaps from ArcGIS Online or ArcGIS Enterprise through the asynchronous methodArcGISPortal.Get3DBasemapsAsync()
. - Added a new property,
FeatureForm.HasEdits
, which indicates whether any edits have been made to the activeFeatureForm
. - Added the
CurrentVersion
property inPortalInfo
, which returns the current version of the portal. - Credential's
Credential.ServiceURI
is deprecated in favor ofCredential.ServerContext
, which provides a normalized base URL that better reflects how credentials are matched to network requests. - Introduced the
United
enum value in theStates Of America Worldview
class. - Improved performance when working with large collections such as attributes, graphics, and KML nodes.
Support for Android devices configured with 16KB page sizes
- ArcGIS Maps SDK for .NET now supports Android devices/emulators that are configured to use a memory page size of 16 KB.
Toolkit
- Built-in barcode scanner support has been added to the FeatureFormView control for Android, iOS, and Windows.
- Fixed a bug where a .NET MAUI application using the basemap tool throws an unhandled exception if the app is started without an internet connection.
- The .NET MAUI Toolkit has been updated to support .NET 9.
- The BasemapGallery control now supports 3D basemaps when connected to a
SceneView
. 3D basemaps will feature a "3D" badge overlaid on their thumbnail image.
Miscellaneous
- The ArcGIS Maps SDK for .NET team has launched a new Calcite .NET toolkit that draws inspiration from the Calcite Design System. The libraries offer a wide range of components, styles, icons, and more that help enhance the styling of your application. For further information, see the blog post.
- A new blog post outlines provides guidance on migrating to the new authentication system and APIs in the ArcGIS Maps SDK for .NET.
- ArcGIS Maps SDK for .NET Demos for .NET MAUI have been updated to support .NET 9.
- A completely new Backgrounding and Location Tracking sample application has been added to demonstrate backgrounding and location workflows.
- A brand new WinUI Map Viewer sample has been developed to showcase workflows and UI components. The application illustrates MVVM patterns and utilizes the Calcite .NET toolkit to create a customized UI experience.
Breaking API changes
- Prior to this release, the Worldview value Pakistan was mistakenly declared as a method. With this release Worldview.Pakistan has been changed from a method to a property.
Behavior changes
GeometryEngine
methodsGeometryEngine.ConvexHull(Geometry)
,GeometryEngine.ConvexHull(IEnumerable<Geometry>, Boolean)
, andGeometryEngine.DensifyGeodetic()
now support true curve input, producing densified curves in the result geometries.
Deprecations
API deprecations
- The
IndoorsLocationDataSource
constructors that use aFeatureTable
are deprecated and will be removed in a future release. Use the constructors that accept aIndoorPositioningDefinition
instead.
OS and framework deprecations
-
Support for iOS/iPadOS 16 is deprecated. The last release to support this version is 200.7. A minimum of iOS/iPadOS 17 will be required at the next release.
-
Support for macOS Ventura (version 13) is deprecated. The last release to support this version is 200.7. A minimum of macOS Sonoma (version 14) will be required at the next release.
- Support for Android 8 (API 26) is deprecated. The last release to support this version is 200.7. A minimum of Android 9 (API 28) will be required at the next release.
Local server deprecations
ArcGIS Maps SDK for Local Server is deprecated. The last release of Local Server will be ArcGIS Maps SDK for Local Server 200.8. For more information, see the deprecation announcement.
Issues resolved
Issues addressed in this release are listed below.
- BUG-000158647/BUG-000157410 - Layer with access key fails to load. This has been resolved by adding portal item support to
WmtsLayer
. - BUG-000174246 - After running for extended periods of time (24+ hours) an application using composite symbols to render graphics will lead to a runtimecore access violation error and crash the program.
- BUG-000170373 - A custom display field
display
is not honored in Native SDKs.Field Expression Info - BUG-000173617 - When related records of a feature that has 0 related records in M:N relationship are queried in ArcGIS Map SDKs, an error is returned
com.esri.arcgisruntime.
, instead of an empty list.ArcGIS Runtime Exception : Geodatabase item not found - BUG-000174741 - The composite locator bundled in a mobile map package fails to load in the application.
- BUG-000174246 - After running for extended periods of time (24+ hours) an application using composite symbols to render graphics will lead to a runtimecore access violation error and crash the program.
- BUG-000173540 - EsriArcGISRuntime.Tasks.Offline.OfflineMapTask raises System.AggregateException when downloading an offline map in a Multi-platform App UI (.NET MAUI) app.
- ENH-000169439 - Request to support ImageOverlay for MapView in Maps SDK for .NET is now resolved. An
ImageOverlay
in aMapView
enables a variety of use cases, such as rapidly displaying sonar and radar data.
- Issue reported on Esri Community: Cancellation token not working during IdentifyLayersAsync operation causes the application to freeze.
- Issue reported on Esri Community: Memory leak on creating a map and loading 44 KMZ files.
- Issue reported on Esri Community: "Content-Encoding" in the Vary header throwing error on loading WMS layer.
- Issue reported on Esri Community: HTTP basic authentication challenge causes a retry loop with SocketsHttpHandler.
- Crash when initializing runtime on Android ARMv7 devices
OAuthUserCredential
fails to refresh expired access tokens.
FeatureForm.ValidationErrors
contains errors that are not actionable. It should only contain errors from field form elements that are visible and editable.
Known issues
Known issues or limitations for this release are listed below.
ArcGISSceneLayer
does not render on x86_64 Android emulators that have a memory page size of 16KB.
Changes in samples
New samples
- Configure electronic navigational charts
- Create KML multi-track
- Snap geometry edits with utility network rules
Enhancements
- .NET MAUI samples have been updated to target .NET 9.
- WinUI Samples have been updated to target WinAppSDK 1.6.1.
- Display Grid enhanced to display a grid on a scene view.
Related topics
- System requirements for 200.7
- Install and set up
- Display a map (Tutorial)
- Product Life Cycle (Esri Support Site)