Release notes for 100.14

This page provides details about enhancements in the 100.14 release of ArcGIS Runtime API for .NET. It also lists this release's deprecations, resolved issues, and known issues.

100.14.1

Issues Resolved

BUG-000149021 The location display graphic in the Xamarin Forms sample app suddenly shifts from one location to another on Android devices.

BUG-000149131 A Vector Tile Package (VTPK) that can be opened in ArcGIS Runtime SDK for .NET 100.12 returns errors when opened in ArcGIS Runtime SDK for .NET 100.13 and ArcGIS Runtime SDK for .NET 100.14.

BUG-000149377 IndoorsLocationDataSource only shows GNSS locations on LocationChanged event on iOS and Android.

BUG-000149413 Crash when calling Popup.FromGeoElement(geoElement) for KML Placemarks.

BUG-000149419 popupManager.finishEditing triggers arcade expression is invalid error from featureTable.add(feature).

BUG-000149423 Locators created with ArcGIS Pro 3.0 fail to load in runtime with error "Geocoder creation error: file too small to contain valid file header".

BUG-000149646 Geotriggers do not create fences for all features from a paged Service Feature Table.

BUG-000149734 Feature layer rendered beneath basemap contents.

BUG-000149750 Include the attribute rule name in the evaluation error message.

100.14

Enhancements

Arcade

Evaluate Arcade expressions

Runtime now supports incorporating ArcadeExpression into your applications. You can create an ArcadeEvaluator to evaluate an Arcade expression under a given ArcadeProfile . You can query the Arcade evaluator to get the list of supported profile variables for a given feature table or geoelement. The profile variables can then be used to evaluate the script using ArcadeEvaluator.EvaluateAsync() .

For more general information on the Arcade scripting language and its uses, refer to the Arcade online documentation.

Arcade console function support

ArcGIS Runtime now supports capturing and logging Arcade script debug messages generated by the Arcade Console() function. You can do so by subscribing to the ArcGISRuntimeEnvironment.ArcadeConsoleMessage callback event. This can be useful when debugging Arcade scripts used in attribute rules, labeling and popups.

Maps and layers

Define custom map extent

You can now define an extent that restricts the map area accessible to the user. Until 100.14, the available area has been defined by the full extent of the basemap or the first operational layer if a basemap isn't provided. With this release, you can set a maximum extent with the new Map.MaxExtent property to restrict the extent to a focused area. Defining a restricted maximum extent may be useful if you are using a basemap that covers the entire world but your app is only designed to be used within a certain region.

Generate image service legend

ArcGIS Runtime now supports generating a legend for raster layers that are based on ArcGIS Image services. The legend can be accessed using ILayerContent.GetLegendInfosAsync() , which is implemented by many layers including the raster layer.

Create feature layers from portal Items

ArcGIS Runtime now adds a FeatureLayer constructor that takes a PortalItem . This constructor accepts portal items that reference FeatureServer and MapServer URLs that include a layer ID.

Support multiple popup elements

At 100.14, the API has been enhanced to support multiple popup elements in a Popup . Popup elements provide a richer experience by allowing you to mix and match different content types such as media, fields lists and text in a single popup. You can author maps and scenes containing these types of popups using ArcGIS Pro or the Map Viewer and Scene Viewer web apps. You can also define these popups in code using . PopupManager.EvaluatedElements allows you to access the popup elements so that you can display them in your custom UI.

Offline maps

Cancel server-side jobs

This release makes it easier to manage long running, server-side jobs. The new Job<T>.CancelAsync() method sends a request to cancel jobs running on the server (for example, exporting tiles or creating geodatabases) and lets you know when the cancellation has completed. This is crucial for reducing the overhead of redundant jobs running on the back-end, particularly in environments with several users creating jobs.

Export Esri elevation data

You can now export elevation data as offline tile packages (.tpk or .tpkx) from Esri's elevation services, such as Terrain 3D or Bathymetry. You can use these elevation tile packages to construct offline scenes, as well as to perform 3D analysis, like viewshed or line-of-sight.

Download scheduled updates and upload new features

A new, optimized workflow improves offline data collection. Building upon the existing read-only scheduled updates workflow, you can now take a map offline so that it:

  • Receives regular update packages directly from the map area, without placing load on feature services.
  • Allows new features to be created on the client and uploaded directly to feature services.

The new PreplannedUpdateMode value of DownloadScheduledUpdatesAndUploadNewFeatures is part of the preplanned workflow and is highly scalable for scenarios where a large number of mobile workers need to be able to efficiently update their offline maps while still collecting data. This workflow only supports adding new features and does not include editing or deleting existing features.

Device Location

Read Geotriggers from maps

ArcGIS Runtime now supports reading geotriggers ( Geotrigger ) directly from a web map or mobile map package. This enables your app to monitor new geotrigger conditions defined by the map author without writing custom code. The ability to author maps that include geotriggers will be available in other Esri products soon. Geotriggers from a map can also advertise a list of requested actions, such as showing pop-ups or enabling editing or tracking. Your app can use these requested actions to select geotriggers that match supported functionality.

New location data source status value

The LocationDataSourceStatus enum has been enhanced with a new value: Stopping .

Location data source error details

In this release, the API has been extended with a LocationDataSource.Error property (and a corresponding LocationDataSource.ErrorChanged() event), to provide error details when a LocationDataSource is unable to start.

Indoor positioning system (IPS)

Caching of pathways

IndoorsLocationDataSource now supports caching of the pathways table for use offline. Caching this data also reduces memory usage, especially when an indoor map contains many floors and pathways.

Indoor positions using Wi-Fi

This release allows using Wi-Fi signal readings on Android devices to interpolate an indoor position. Note that the Android device must have the developer option enabled and Wi-Fi scan throttling disabled.

Apple Indoor Maps and Positioning

Indoor positions on an iOS device can be interpolated using Apple indoors positioning.

Improved positioning accuracy

Overall positioning accuracy in this release has improved for all usage scenarios: BLE, Wi-Fi, GNSS, and Apple. Note that full support for Wi-Fi based positioning will be available with ArcGIS Pro 3.0.

Indoor location data source warnings

ArcGIS Runtime 100.14 adds a property, IndoorsLocationDataSource.Warning (with a corresponding IndoorsLocationDataSource.WarningChanged() event), to provide notifications about potential problems with IPS positioning. Such warnings are not fatal but can influence the accuracy of final position estimation. For example, a warning like Pathways table cannot be loaded means locations won't be snapped to the predefined indoor paths, which may result in a less accurate position displayed for the user.

Scenes (3D)

Control labeling of point scene layers

Labeling is now supported on ArcGISSceneLayer when the source is a point scene layer. A new property, ArcGISSceneLayer.LabelsEnabled , controls the display of labels for the entire layer. Labeling of ArcGIS scene layers is currently only available when the source is a point scene layer, and the property has no effect on other scene layer source types that you also work with via the ArcGIS scene layer (3D Object scene layer and integrated mesh scene layer).

Reprojection of 3D object and integrated mesh scene layers

The ArcGISSceneLayer and IntegratedMeshLayer classes now support on-the-fly reprojection from the coordinate system in which they were published to the coordinate system of the scene, which is WGS84. Due to the computational cost associated with reprojecting data, it's recommended to store all data and layers in the same spatial reference as your basemap.

Indexed 3D scene layer (I3S) v1.7 Draco geometry support

ArcGIS Runtime now supports the Draco open source library for compressing 3D geometries in 3D object scene layers ( ArcGISSceneLayer ) and Integrated Mesh Scene Layers ( IntegratedMeshLayer ). Publishing scene services and scene layer packages with Draco geometry compression results in significantly smaller nodes within the layer cache. Depending on the size, complexity, and i3S version of your data, you may see rendering time reduced by up to 30%, memory usage reduced by up to 20%, and reduced network traffic and disk I/O, resulting in a more responsive user experience.

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 scene layer package (.slpk) to the latest version. You can also use ArcGIS Pro's Create 3D Object Scene Layer Package and Create Integrated Mesh Scene Layer Package geoprocessing tools to create scene layers at the latest version.

Improved scene view rendering

Improvements have been made to how ArcGIS Runtime calculates which tiles are required to render a current scene view. These improvements can result in a 30-40% reduction in the number of tiles that are requested for all raster and vector tile layers when rendering a scene view, reducing rendering times.

Geometry and spatial reference

Geodetic implementation of nearest coordinate

A new method in this release, GeometryEngine.NearestCoordinateGeodetic() , provides an alternative to the existing nearest coordinate method (planar). This new method uses a shape-preserving geodesic approximation of the input geometry to perform the calculation.

Vertical units of distance

A new property, SpatialReference.VerticalUnit , allows you to get the vertical units of distance for any spatial reference that has a vertical coordinate system.

Additional vertical transformations

Vertical transformations have been added for Estonia, Latvia, Lithuania, Switzerland, and Tasmania.

Geodatabase

Create mobile geodatabases

This release introduces the ability to create and modify mobile geodatabases. This includes the ability to create and edit feature tables within a mobile geodatabase. Mobile geodatabases created with ArcGIS Runtime behave like mobile geodatabases from any other source. See the Work with data files topic for more information.

Read domains in geodatabases

ArcGIS Runtime now provides the ability to read a list of domains in mobile geodatabases and service geodatabase replicas.

Support for attribute rules

This release introduces attribute rules to help improve data integrity and editing efficiency. Two kinds of attribute rules are supported:

  • Constraint rules uphold data quality and prevent invalid data entry by ensuring that user-defined requirements are met.
  • Immediate calculation rules increase editing efficiency by automatically populating attributes or by making related edits to other geodatabase objects.

Attribute rules are written using the Arcade scripting language and configured on geodatabases using ArcGIS Pro. See the Introduction to attributes rules topic in the ArcGIS Pro documentation for general information about attribute rules.

Attribute rules are supported as follows:

  • When using a feature service or a stand-alone mobile geodatabase with attribute rules defined, ArcGIS Runtime will execute constraint and immediate calculation rules at edit time.
  • When using a feature service, rules defined with the Exclude from application evaluation tag will not be executed on the client, but instead will run on the server when ServiceGeodatabase.ApplyEditsAsync() is called. Edits made by the server due to rule execution are automatically reflected in your ArcGIS Runtime app.

Support contingent values in PopupManager

PopupManager now provides support for validating contingent values and determining if a popup field belongs to a contingent values field group.

Labeling

Access annotations and dimensions referenced from web maps

ArcGIS Runtime 100.14 can render AnnotationLayer and DimensionLayer published from ArcGIS Pro 3.0 and referenced from web maps. The annotation and dimension layers referenced from the web map must be separate services on an Enterprise server with version 11.0 or higher. If the web map is published to contain all its data, the server will intervene and the annotation or dimension layers will only appear as image layers rendered by the server.

Honor annotation and dimension layer barrier weight

ArcGIS Pro 3.0 exports the BarrierWeight of annotation and dimension layers. This is used by ArcGIS Runtime to determine how much of an obstacle to labeling the annotation or dimension weights should be. This property is accessible via the ArcGIS Runtime API as AnnotationLayer.BarrierWeight or DimensionLayer.BarrierWeight .

Network analysis

Improved performance

General performance improvements were made in network analysis that reduces solving completion times, especially for local service areas and routing.

SDK

Streamlined Visual Studio Extension experience

The Visual Studio extensions available with ArcGIS Runtime SDK for .NET have been streamlined to clarify their purpose and remove the duplication of Project Templates.

Extension ArcGIS Runtime SDK for .NET Project Templates provides application project templates for Android, iOS, and Windows that reference the appropriate NuGet packages for each platform and use a Model-View-ViewModel (MVVM) design pattern. This extension, available for Visual Studio on Windows, can be installed within Visual Studio from the online Visual Studio Marketplace using the Manage Extensions dialog. Alternatively download from the downloads page for installation offline.

Extension ArcGIS Runtime SDK for .NET contains a subset of the NuGet packages that are published on NuGet.org and will configure a local NuGet package source in your user profile that you can reference if you are developing in an environment with limited online access. This extension, available for Visual Studio on Windows, can be downloaded from the downloads page.

Default Authentication UI

A new DefaultChallengeHandler can be configured to automatically handle prompting the user for credentials with platform-specific user interface for certain authentication types on Android, iOS, and Windows. Enable the default challenge handler by calling AuthenticationManager.Current.ChallengeHandler = new DefaultChallengeHandler();.

When enabled, the DefaultChallengeHandler supports the following authentication types:

  • Android (Xamarin): ArcGIS Token, HTTP Basic, IWA (requires custom handler), and Proxy.
  • iOS (Xamarin): ArcGIS Token, HTTP Basic, IWA (requires NSUrlSessionHandler), and Proxy.
  • UWP: ArcGIS Token, Certificate (certificate must be installed on machine), HTTP Basic, and IWA.
  • WPF and WinUI (.NET Framework / .NET 6): ArcGIS Token, Certificate, HTTP Basic, IWA, and Proxy.

Support for HTTP/2

ArcGIS Runtime API for .NET now supports HTTP/2 when requesting tiles from layers including ArcGISTiledLayer , ArcGISTiledElevationSource , WmtsLayer , and WebTiledLayer and using .NET 6 on Windows 10 or higher, .NET 6 for Android (preview), and .NET 6 for iOS (preview)).

Toolkit

The ArcGIS Runtime SDK for .NET Toolkit contains controls and components to accelerate your development. Visit the GitHub repo for more information and a list of available components. To reference the Toolkit in your projects use <PackageReference Include="Esri.ArcGISRuntime.Toolkit" Version="100.14.0" />.

Enhancements for this release include:

  • New component: FloorFilter. Shows sites and facilities, and enables toggling the visibility of levels on floor-aware maps and scenes.
  • Performance improved in BasemapGallery.
  • Hit testing performance improved in AR on Android.
  • TimeSlider has broader support for time-aware maps, scenes, and layers.
  • Fixed an issue that can affect WPF builds using newer versions of Visual Studio.

Local Server

ArcGIS Runtime Local Server SDK 100.14 is an incremental compatibility release that provides support for geoprocessing and map packages created with ArcGIS Pro 2.9.x. This release supports the ArcGIS toolbox format (.atbx file extension), which represents the next generation of geoprocessing toolbox, tool, script, and model storage. Using ArcGIS Pro, you can create toolsets, add new model and script tools, change properties, and copy tools from legacy toolboxes (.tbx file) into the new toolbox format. For more information see Create a toolbox.

Breaking API changes

There are no breaking changes with this release.

Behavior changes

Labeling

Improved placement for straight oriented 2D polyline labels

In previous releases, the LabelDefinition.TextLayout property for 2D line labels placed labels at incorrect locations when LabelTextLayout value was Straight and LabelingPlacement was not an ...Along value. This has now been corrected such that the LabelingPlacement for straight 2D line labels conforms to the enums of PointAboveRight for point features, PolygonAlwaysHorizontal for polygon features, and LineAboveAlong for line features.

Impact of parent layer's visibility in labels of statically rendered 3D feature layers

Previously, the features of a static 3D feature layer which were owned as part of a group layer would turn invisible when their parent layer dictated it, but the labels would remain. Now, the labels and features for these layers keep their visibility in sync in response to changes in parent visibility.

Point scene layers honor their initial labels enabled state

Previously, point scene layers would have labels enabled by default due to absence of an API to allow users to alternate between the enabled/disabled states. With the introduction of ArcGISSceneLayer.LabelsEnabled in this release, this property is used as originally authored.

Device Location

Location data source

When StopAsync is called on a LocationDataSource that is starting, the start Task will now be canceled, so awaiting code may throw TaskCanceledException. Previously the start Task would run to completion (the datasource finished starting, then proceeded to stop again).

When StartAsync is called on a LocationDataSource that is stopping, an exception will now be thrown. It is now necessary to wait for the datasource to finish stopping before calling StartAsync. Previously this was allowed (the datasource finished stopping, then proceeded to start again).

Deprecations

API deprecations

  • The BasemapType enumeration is deprecated. Many of the basemaps referenced by this enumeration are in Mature Support and will no longer be updated. You can instead use the geographically load-balanced services provided by the BasemapStyle enumeration. These services also allow developers to monitor usage with API keys and named users. The basemap helpers on Basemap have also been deprecated as they reference the same services. Use BasemapStyle instead. To learn the life cycle plans of Esri basemaps, see Lifecycle for Esri's hosted raster basemap services. To learn the current lifecycle of all Esri’s basemaps, see Basemaps Life Cycle Support Status.

  • LocationDataSource.isStarted() has been deprecated in favor of LocationDataSource.Status .

  • The ServiceCurveGeometryMode value FetchCurves is deprecated. This value will not be supported for future offline workflows with true curves and will be removed in a future release. If true curves are required in your online feature layer workflows, you should use the TrueCurveClient mode and ensure that true curves are preserved correctly in any editing your app performs. If true curves are not required, then use the DensifyCurves mode instead.

  • The Unit.UnitId property is deprecated in favor of the new Unit.Wkid property. The behavior is unchanged and the new name more accurately represents the functionality.
  • The synchronous Job<T>.Cancel() method has been replaced with the asynchronous Job<T>.CancelAsync() method, that will wait for operations to be cleaned up on the server-side before continuing.
  • The JobChanged event has been replaced with two new events that provide a more fine-grained indication of job updates: StatusChanged notifies you that a job has changed status (for example moving to the succeeded status), and MessageAdded notifies you that a new message has been logged for the job.
  • The static "Create" methods on the Basemap class are deprecated. Use the Basemap constructor instead. See remarks on each method for an equivalent BasemapStyle-based or PortalItem-based replacement.

  • "Credential" properties and constructors that accept a Credential are deprecated. Use AuthenticationManager to define credentials for resources.

  • All SpatialReference constructors are deprecated. Use the static "Create" methods instead.

OS and framework deprecations

  • Support for Windows 10, Versions 1903 (Build 18362), 1909 (Build 18363), and 2004 (Build 19041) is deprecated. A minimum of Windows 10 Version 20H2 (Build 19042) will be required at the next release. For more information see Windows 10 Enterprise and Education product lifecycle in the Microsoft documentation.

  • Support for Windows 8.1 is deprecated. The last release to support Windows 8.1 will be version 100.15. For more information see Windows 8.1 product lifecycle in the Microsoft documentation.

  • Support for Windows Server 2012, 2012 R2, and 2016 is deprecated. The last release to support Windows Server 2012, 2012 R2, and 2016 will be version 100.15. A minimum of Windows Server 2019 will be required in a future release. For more information see Windows Server 2012 lifecycle, Windows Server 2012 R2 lifecycle, and Windows Server 2016 lifecycle in the Microsoft documentation.

  • Support for .NET Framework 4.6.1 is deprecated. The last release to support .NET Framework 4.6.1 will be version 100.15. A minimum of .NET Framework 4.8 will be required in a future release.
  • Support for iOS 13 is deprecated. A minimum of iOS 14 will be required at the next release.
  • Support for Android versions 6.0 Marshmallow (API level 23), 7.0, Nougat (API level 24), and 7.1 Nougat (API level 25), is deprecated. The last release to support these versions will be ArcGIS Runtime version 100.15. A minimum of Android 8.0 Oreo (API level 26) will be required in a future release.
  • Support for macOS Catalina is deprecated. A minimum of macOS Big Sur will be required at the next release.

To learn more about the future of ArcGIS Runtime SDK for .NET, see ArcGIS Runtime in 2022 and beyond blog.

Issues resolved

Issues addressed in this release are listed below.

BUG-000114058 Zooming in on an area that crosses the International Date Line results in the entire basemap.

BUG-000139557 When a token expires after it has been generated, the application will throw an error saying you don't have permission to use this resource and doesn't prompt to login until the application is restarted.

BUG-000141154 Web Map Service (WMS) which ends with a slash, '/', fails to load and returns "Invalid XML" or "Layer failed to load" error messages.

BUG-000144236 The sublayer labels of a group layer are visible despite the layers being toggled off for the published line and polygon data on ArcGIS Online.

BUG-000145005 The maxFeatures property of QueryParameters is zero by default.

BUG-000145979 Continuously increasing memory use when updating a graphic with new PictureMarkerSymbol .

BUG-000146369 Graphic disappears from the map while switching between the two MapViews.

BUG-000146375 await table.LoadAsync() causes some Utility Network data to not display in the map view.

BUG-000146427 Continuously adding and removing group layers from map's operational layers increases memory.

BUG-000146560 SketchEditor is not capturing the exact initial location to draw a polygon feature in ArcGIS Runtime SDK for .NET (WPF).

ENH-000139990 Request for GeometryEngine.NearestCoordinateGeodetic() method.

Question on Esri Community ArcGIS Runtime is only requesting the 0,0 tile for a WMTS service with TileMatrixSetLimits.

Libtiff fixes

ArcGIS Runtime 100.14 includes Libtiff 4.2.0 with the following cherry-picked fixes applied in order to address specific security vulnerabilities. Note that scanning tools will still report Libtiff 4.2.0.

Known issues

Known issues or limitations for this release are listed below.

  • BUG-000149978 Add/update/delete feature operations that trigger attribute rules whose Arcade expression uses the Domain function will fail to evaluate in Runtime with an "Arcade expression is invalid" error message.

Changes in samples

New samples

Enhancements

Bug fixes

  • Fixed issues where samples weren't able to deploy on Android due to a camera permissions issue.
  • Removed the usage of "Clone" in the samples.
  • Fixed an issue with Display a scene viewpoint being tilted when the viewpoint is loaded.
  • Updated Dictionary renderer with graphics overlay to use ordered anchor points.
  • Fixed crash in Find place.
  • Fixed source code not showing in several samples.

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