This page provides details about enhancements in the 100.12 release of ArcGIS Runtime API for .NET. It also lists this release's deprecations, resolved issues, and known issues.
New API reference
New API reference documentation for ArcGIS Runtime SDK for .NET provides a unified reference that more accurately represents the APIs available with each NuGet package and with each target framework or platform. For example, when working with the WPF UI framework using the Esri.
package you can now browse the API reference by .NET Framework, .NET Core 3.1, or .NET 5. A new Applies To section lists the frameworks on which the API is available and the ArcGIS Runtime version at which it first became available.
Enhancements
New Geotrigger API
With this release, ArcGIS Runtime introduces a new Geotrigger API. Geotriggers let you monitor your GIS data in real-time and receive notifications when you encounter specified conditions, such as when a device enters or leaves an area (a workflow also referred to as Geofencing). With Geotriggers you can monitor locations from whatever
LocationDataSource
you choose while also tapping into the full power of ArcGIS Runtime's
GeometryEngine
for evaluating spatial relationships.
See the new Geotrigger topic in the developer guide for more information.
Maps
Support for floor-aware maps
At 100.12, ArcGIS Runtime supports floor-aware maps. These maps make it easy to visualize building floor plans and explore indoor data. ArcGIS Runtime apps can now detect floor-aware maps and filter their display based on floor levels. See the
FloorManager
class for more information. ArcGIS Pro 2.8 is required for publishing floor-aware web maps and an upcoming version of ArcGIS Pro (2.9) will allow you to include floor-aware maps in a mobile map package. You can use the ArcGIS Indoors information model to create floor-aware data or you can configure existing maps and layers to make them floor-aware.
Support for web map specification 2.20
At this release, ArcGIS Runtime supports version 2.20 of the web map specification.
Scenes
Indexed 3D Scene Layer (I3S) versions 1.7 and 1.8
ArcGIS Runtime now supports Indexed 3D Scene Layer (I3S) specification versions 1.7 and 1.8 for 3D Object Scene Layers and Integrated Mesh Scene Layers in applications deployed on Windows (WPF and UWP). This enhancement delivers an improved user experience during the initial load and rendering of scene layers and during scene view interaction and navigation. Depending on the size and complexity of your data, you may see rendering time reduced by up to 75%, memory usage up to 20% lower, CPU activity up to 10% lower, and network requests reduced by up to 30%.
I3S version 1.7 provides improved indexing of nodes within scene services and scene layer packages that enables ArcGIS Runtime to make fewer requests for data, resulting in reduced network traffic or file access and faster layer load times. I3S version 1.8 adds support for textures encoded in Basis Universal, a GPU-optimized texture compression format that significantly reduces the image storage size while maintaining quality.
To ensure that you can take advantage of the latest improvements with your data, use the I3S converter in the I3S GitHub repository to update the version of an integrated mesh or 3D object scene layer (.slpk) to the latest version. Additionally, in ArcGIS Pro the Create 3D Object Scene Layer Package and Create Integrated Mesh Scene Layer Package geoprocessing tools can be used to create scene layers at the latest version.
Geometry
Additional support for true curves
In addition to using true curves in mobile map packages (introduced at 100.11), you can now use true curves from a user-managed ArcGIS Enterprise feature service that supports curves. You can display, query, select, identify, and perform online edits on these curves. You may know true curves as parametric curves.
You cannot use true curves in offline workflows, in geoprocessing, or in ArcGIS Online. Not all geometry engine methods support true curves.
Create and display true curves
**Create true curve geometries in code—**You can create polygon and polyline geometries from new curve segments defined in code (cubic beziers and elliptical arcs) using the new classes,
CubicBezierSegment
and
EllipticArcSegment
. Additional information about creating segments is in the Segments section in the Geometry topic.
**Fetch true curves from a service—**By default, your app will fetch densified curve geometries from feature services that support curves. You can choose to fetch true curves by setting the new global
ServiceCurveGeometryMode
to fetch
.
Edit true curves
**Edit true curve geometry—**You can edit existing geometries' true curve segments using geometry builders. The API now includes properties on
GeometryBuilder
,
Part
, and
Segment
that indicate whether or not curves are present.
PolygonBuilder
and
PolylineBuilder
behavior has changed to support curves. If your app provides the ability to create or edit curve geometries, you can use properties on
ArcGISFeatureServiceInfo
to find out what curve support each feature service has. With this information you could adapt your app behavior for each service. For example, you could densify any curve geometries before sending them as edit updates to a service that does not support updating curve geometries.
To curve-enable a user-managed ArcGIS Enterprise feature service, see the Properties that affect editing section of Editor permissions for feature services in the ArcGIS Enterprise help.
**Send true curves to a service—**You can inform a feature service that your app is a true-curve client so that the service will allow your app to edit. Feature services can be published with protections that disallow edits from curve-unaware clients. Use the new
ServiceCurveGeometryMode
member and
ServiceCurveGeometryMode
enum to inform the service your app is a true-curve client. This setting applies throughout the liftetime of the process; set it before any requests are made (an exception will be thrown if you try to change it later).
Symbols
Support control measure lines with ordered anchor points in Arcade-based military dictionary styles
The dictionary renderer now supports symbolizing control measure lines based on ordered anchor points according to standard military symbology specifications MIL-STD 2525 and APP-6. Updated military dictionary styles will be available for download with the ArcGIS Pro 2.9 release and developers will be able to use these styles to render control measure lines by setting the dictionary symbol style's model configuration property (DictionarySymbolStyleConfiguration) to "ORDERED ANCHOR POINTS".
Support scale-based symbol classes and alternate symbols for unique value and class break renderers
ArcGIS Runtime adds support for rendering scale-based symbol classes and alternate symbols in this release. Unique value and class break renderers allow you to specify criteria to uniquely symbolize data so the user can see trends and patterns in the data.
One of the most common approaches to alternate symbols is to use a complex symbol at large scales and a simple, but related alternate symbol at small scales. Scale-based symbol classes and alternate symbols simplify the number of redundant layers in a map and allow for easier maintenance of these layers. You can use ArcGIS Pro 2.9 to publish mobile map packages (.mmpk) containing alternate symbols information. For more information on scale-based symbol classes and alternate symbols see Scale-based symbol classes in the ArcGIS Pro documentation.
Labeling
New feature-oriented properties and methods on annotation layers
At this release,
AnnotationLayer
and
AnnotationSublayer
have been enhanced to include properties and methods that enable feature-oriented interaction with annotation text. This includes options to set a definition expression, select annotation text, and set visibility of annotation text.
Client-side labeling of point scene layers
Point scene layers can be published to include labeling info in a service or mobile scene package. At this release, ArcGIS Runtime supports dynamic client-side labeling of point features in a point scene layer using the available labeling info.
Polygon labels support rotation
The
TextSymbol
rotation and the
LabelDefinition
angle expressions are now applied to Horizontal
polygon labels, allowing some manual control over the layout angle. A future release will include automatic rotation to match the polygon for labels with text
of Straight
or Follow
.
Support Arcade to get domain information in labeling and popups
Arcade 1.13 provides the ability to access table domain info for a feature. At this release, ArcGIS Runtime supports the Domain($feature, field
function to get domain information directly from a feature.
Support Arcade to get schema information in popups
Arcade 1.13 provides the ability to access table schema info for a feature. At this release, ArcGIS Runtime supports the Arcade Schema($feature)
function to get schema information directly from a feature.
Support for new Arcade 1.14 functionality
From
function - to convert from a JSON string to an Arcade objectJSON Nautical Miles
unit - added to the list of supported unitsWeek
function - for finding which week of the year a date falls in
Network analysis
Additional voice guidance customizations for navigation
At 100.12, a new callback allows setting the state of the text-to-speech engine. Setting this prevents multiple voice guidance events interfering with each other.
Support for Slovak
Slovak is supported for driving directions.
Geodatabases
Read and edit standalone mobile geodatabases
Currently, ArcGIS Runtime supports mobile geodatabases that were generated by taking a webmap offline, exporting data from feature services, or authored as part of mobile map/scene packages.
At this release, ArcGIS Runtime also supports reading and editing of standalone mobile geodatabases generated by ArcGIS Pro. It requires ArcGIS Pro 2.7 or above to author standalone mobile geodatabase.
ArcGIS Runtime supports the following capabilities with standalone mobile geodatabases:
- Spatial and nonspatial tables
- Attachments
- Relationships
- Annotations
- Domains
- Subtypes
- Views
All edits made using ArcGIS Runtime will be treated as anonymous for editor tracking purposes.
Editing of feature tables is disabled by default for mobile geodatabase feature datasets that are not yet supported in ArcGIS Runtime. This includes datasets such as Topology, Parcel Fabrics, Terrain, and so on.
Attributed Relationships
An attributed relationship is a type of many-to-many relationship that uses an intermediate table to store key attribute values for each individual relationship.
Runtime now provides Relationship
and Key
on the
RelationshipInfo
class to allow developers to query and get attributes from an attributed relationship table.
Create service geodatabases and subtype feature layers from portal items
ArcGIS Runtime 100.12 provides the ability to create service geodatabases and subtype feature layers from portal items.
Utility networks
Honor association deletion semantics when editing
In a utility network, features that belong to a specific asset type can serve as containers or structures. Each of these containers or structures has association deletion semantics, which are rules that define what happens to associated features when the container or structure is deleted.
- Cascade: deleting a container causes its associated features to also be deleted.
- Restrict: deleting a container is not permitted if it contains associated features.
- None: associated features are not deleted when their container is deleted.
In the 100.12 release, association deletion semantics are supported in a limited fashion. ArcGIS Runtime checks associated features recursively and prevents the deletion of containers/structures where Restrict semantics are violated.
OGC
Order by fields in OGC feature layer query parameters
At this release,
QueryParameters.OrderByFields
is supported for use with an OGC feature layer.
KML
Support for "check off only" list types
When specified for a container or network link, a
KmlListItemType
value of Check
prevents the user from making all items visible at once. In other words, the user can hide everything in the container or network link (check everything off), but cannot show everything on at the same time (check everything on). This setting is useful for containers or network links that contain a large amount of data.
Portal
Get developer basemaps from a Portal
Portals/Organizations can now configure a set of developer basemaps that are accessible and metered via API keys. To retrieve developer basemaps from a given portal use Get
on the
ArcGISPortal
class.
The default developer basemaps provided by ArcGIS Online (AGOL) are built upon the basemap styles services. For further details, see the document Basemap styles service.
Coordinate systems and transformations (projection engine)
-
The algorithms that calculate geodesic lines were improved, particularly for near-antipodal cases.
-
Several vertical transformations for NAVD88 were added for when the coordinates are in US survey feet or international feet.
-
An Estonian geoid model for EH2000 was added.
-
A a new projection, Plate Carrée Oblique, was added. You can now set the center to any latitude-longitude values and rotate using an azimuth parameter.
-
New projected coordinate systems were added, including California Teale Albers using international feet, Colombia, KSA GRF17 UTM zones, SRGI2013 UTM zones for Indonesia, and several Snake Grid emulations for new rail systems in the UK.
See the Spatial references topic for more information about working with coordinate systems and transformations.
Local Server
ArcGIS Runtime Local Server 100.12 now supports geoprocessing and map packages created with ArcGIS Pro 2.8.x. The following geoprocessing tools are now supported with this release:
Breaking API changes
There are no breaking changes with this release.
Behavior changes
-
PolygonBuilder
andPolylineBuilder
behavior has changed to support curves. -
When using imperial units, the voice guidance distances will now transition from reporting in miles to feet at a distance of 1000 feet. This previously happened at 660 feet.
-
When 2D labels overlap, the highest-priority labels will appear on top of the lower-priority ones.
-
With this release, a
LabelDefinition
with aRepeat
value of 0 for labeling a line indicates that labels should not repeat. This is consistent with the behavior in ArcGIS Pro.Distance -
When 2D point labels are allowed to overlap other labels or features,
LabelOverlapStrategy
is set toavoid
, andLabelDeconflictionStrategy
is set todynamic
, the labels will spread out to minimize deconfliction. -
Offset distance is now honored for straight-line labels.
Deprecations
- Support for targeting .NET Core 3.1 LTS and .NET 5 is deprecated. A minimum of .NET 6 will be required at the next release.
- The minimum UWP version has been updated to Windows
10 1903 18362
.
Issues resolved
Issues addressed in this release are listed below.
BUG-000117942 The delete
method fails to delete a feature completely from a shapefile.
BUG-000130386 The unhandled exception "Esri.ArcGISRuntime.ArcGISRuntimeException: Transformation resulted in geometry with NAN coordinates" error message is returned while switching basemaps only with an overlay set on the map view.
BUG-000131623 The RuntimeImage class constructor swaps width and height values.
BUG-000131627 TheRuntime Image( Int32, Int32, Byte[])
class constructor reads RGBA values as BGRA. BUG-000137580 LabelDefinition.allowOverlapOfLabel does not place the labels at different positions.
BUG-000138041 On trying to authenticate using OAuth, an exception occurs on AuthenticationManager.GenerateCredentialAsync:
One or more errors occurred. (Error authenticating: {"code": 400, "details": [], "error": "invalid_request", "error_description": "invalid PKCE code_challenge_verifier", "message": "Invalid PKCE code_challenge_verifier"})".
BUG-000138152 Mobile map package labels fail to display at all scales.
BUG-000138187 A web scene containing a point scene layer with labels fails to display labels in a scene view.
BUG-000140465 When calling the Geometry
method with a geometry containing true curves, the call hangs for more than 15 minutes.
BUG-000141157 Excessive memory usage in ArcGIS Runtime 100.11 when displaying a mobile map package that has a lot of symbols.
Bug from the Esri Community Undo operation on Sketch Editor after MoveSelectedVertex deletes vertex.ENH-000109173 Add more clarification to the Location
property's remarks documentation for what automatically disables it.
ENH-000135517 Request for the the capability to run the Create Map Tile Package geoprocessing tool with the ArcGIS Runtime Local Server.
ENH-000137688 Request to support the priority property of a label class while working with feature labeling.
ENH-000138662 Request for read/edit support in ArcGIS Runtime for mobile geodatabases created with ArcGIS Pro.
Known issues
Known issues or limitations for this release are listed below.
BUG-000132871 Application fails to retrieve the bookmarks for a mobile scene package (.mspk file).
BUG-000134159 Ordering fields by OrderByFields.Add(orderBy1) in a mobile map package (.mmpk file) with 40,000 features fails with an error.
BUG-000135080 The Field.
property returns an incorrect value for a shapefile field.
BUG-000139221 The location returned by the location
method in a web map tile service (WMTS) basemap with the WKID 31256 spatial reference is incorrect.
BUG-000140414 Unable to display an ArcGIS Online image service with the Classify Intervals user-defined renderer.
BUG-000142153
PolygonBuilder
and
PolylineBuilder
to
method fails if the geometry builder contains empty points and curves.
BUG-000142195 True curves in mobile geodatabases display incorrectly if projected (mobile geodatabases created by ArcGIS Pro can contain true curves). Workarounds are to densify the curve geometries in the mobile geodatabases or to display them in the same spatial reference.
Changes in samples
Sample applications that demonstrate the use of ArcGIS Runtime API are available in the Sample Code tab on this website and in a GitHub repository. The following changes have been made in this release.
New samples
Enhancements in samples
- Moved samples from user authentication to API keys where user authentication workflow is not the point of the sample.
- Used user authentication on samples with any ambiguity between API key and user authentication workflows.
- Updated OAuth samples to demonstrate or document Enterprise Authentication workflow.
- .NET: updated samples to use new Xamarin.Essentials WebAuthenticator. Removed Xamarin.Auth.
Bug fixes in samples
- Local Server Geoprocessing service now starts as expected.
- Open map (URL) received new data.
- Updated samples to use new Xamarin.Essentials WebAuthenticator. Removed Xamarin.Auth.