Release notes for 100.5

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

Enhancements

This section describes new features and improvements.

Maps and scenes

  • Mobile scene packages are now supported in the ArcGIS Runtime allowing you to take scenes and their associated data offline. You can consolidate scenes and their data into a single *.mspk file using ArcGIS Pro 2.3 or higher and share the package with your ArcGIS organizational account or copy it directly to your mobile device.
  • Maps can now be rendered with support for reference scale. Reference scale is the scale at which symbols and labels appear at their intended, true size. As you zoom in and out beyond the reference scale, symbols and text will increase or decrease in size relative to the reference scale to keep a consistent size on the map. If no reference scale is set, symbols remain a constant size on the screen and do not change size as you zoom in or out. Individual layers in a map can opt in or out of honoring the map's reference scale.
  • Annotation layers are now supported for display in maps. Annotation allows you to precisely control the placement and layout of text and is often used as an alternative to labels which are more dynamic. Annotation layers can be included for offline use in mobile map packages created from ArcGIS Pro 2.3 or higher or accessed over the network through Feature Services from ArcGIS Enterprise 10.7 or higher.
  • Group layers are now available. Group layers combine multiple layers that are often displayed and managed together. You can create group layers locally from scratch in maps and scenes. Currently, saving group layers is only supported in web scenes.
  • Point Scene layers are now supported to provide fast visualization of large amounts of 3D point features from ArcGIS Scene Services, Mobile Scene Packages (.mspk file) or Scene layer packages (.slpk file). Point scene layers use automatic thinning to improve performance by not displaying all the features at greater distances, rather, as you zoom in, additional features are displayed until you reach the highest level of detail, when all features will be shown.
  • Point Cloud layers are available to support the display of sensor data such as LiDAR from ArcGIS Scene Services, Mobile Scene Packages (.mspk file) or Scene layer packages (.slpk file).
  • Displaying subsurface content is now supported in scenes allowing you navigate that camera below the terrain and explore the data underneath. You can change Surface.navigationConstraint property to allow navigating below ground or you can change the opacity of the surface to view subsurface content from above the ground.

KML Tours

ArcGIS Runtime now supports playing tours contained in a KML file. Tours are a great way to guide users through KML data and highlight important aspects through narration and animations. The following tour actions are supported -

  • FlyTo - fly to a specified location using a bounce or a smooth flying mode
  • Wait - wait the specified length of time before executing the next tour primitive
  • AnimatedUpdate - update KML features. Any changes that lend themselves to interpolation (that is, that contain intermediate states, such as changes in size) are animated over the specified duration.
  • SoundCue - play the specified sound file. Playing multiple sound files in parallel are supported.

Web Feature Service (WFS)

ArcGIS Runtime now supports OGC Web Feature Service, including versions 2.0.0 and 2.0.2. You can:

  • Connect to a WFS service and discover the available datasets
  • Query data from a WFS service and display in a 2D map or 3D scene
  • Query and load non-spatial datasets
  • Use XML to perform advanced queries on the server

At 100.5, Runtime does not support editing WFS, taking WFS offline, opening WFS from a portal item, or reading and writing WFS from web maps and scenes. Runtime does not support complex features (those with nested attributes), which may affect INSPIRE services. Some geometry types, including those with Z and those with M, are not supported. When loading a WFS feature table, fields with names that start with gdb will be ignored. When populating a WFS feature table from a service, the QueryParameters WhereClause is only supported on services that accept CQL_FILTER, which includes GeoServer.

Symbology

  • New Multi-layer Symbols API offers more flexibility and control over how to construct and represent symbols. These symbols can be composed of a number of different symbol layers that are combined together along with geometric effects to achieve high cartographic quality. The API closely mirrors the definition of symbols in the Cartographic Information Model spec.
  • Arcade expressions on renderers in a web map or mobile map are now honored in ArcGIS Runtime. Expressions can be used in place of raw field values on these renderers to support smart mapping styles such as Predominance, Relationships, etc. These expressions can be authored using ArcGIS Pro or the Map Viewer web application in ArcGIS Enterprise or ArcGIS Online.
  • 3D Line symbols such as volumetric tubes are now supported when displaying feature layers containing polyline geometry in web scenes.

Offline

  • You can now choose to use an existing basemap that is located on the device when taking a map offline. This feature, called by reference basemap, removes the overhead of downloading a basemap for every map and is available for both the on-demand and preplanned offline workflows. The path to the basemap can be an absolute path or a path relative to the mobile map package.
  • Image and vector tiles can now be downloaded from ArcGIS Online services using a polygon as the area of interest. This gives you greater precision to request only the tiles you need to support your operational data. This polygon support is available through ExportTileCacheTask, ExportVectorTilesTask and OfflineMapTask. ArcGIS Enterprise services already supported polygonal areas of interest with prior versions of Runtime.
  • The new Compact Cache V2 format of tile packages (*.tpkx file) available with ArcGIS Pro 2.3 is now supported in the ArcGIS Runtime. This format is based on an open specification and is optimized for fast access and improved performance. You can use the existing ArcGISTiledLayer and TileCache APIs to support the new format. See Take a layer offline topic for more information on tile packages.
  • The ExportTileCacheTask and OfflineMapTask now support exporting tiles from an Image Service to support offline usage.
  • Time-based expiration of mobile map packages and mobile scene packages is now supported in ArcGIS Runtime. An author can choose either a hard expiration where the package is not usable after the expiry date, or a soft expiration where a warning message my be displayed to the user but the package is still usable after the expiry date. Packages with such expiration constraints can be created using an upcoming version of ArcGIS Pro.

Geocoding

The next generation locator format (.loc file with associated .loz data) available in ArcGIS Pro 2.3 is now supported in runtime. It offers better result matching, faster offline performance and a more compact file storage. All capabilities available with the previous format such as finding addresses, locations, and suggestions are supported with the new format using the same LocatorTask API.

Coordinate systems, projections, and transforms

  • Coordinate systems: The projected coordinate systems for Las Vegas, Pima County, Serbia, and Saudi Arabia were added.
  • Projections: The Equal Earth and Peirce Quincuncial projections were added.
  • Transformations:
    • Transformations for Slovenia, Saudi Arabia, Georgia (country), St. Pierre and Miquelon, Switzerland, and 19 others were added.
    • File-based geographic/datum transformations were added for Belgium and Switzerland. These files are part of the projection engine .zip file that can be downloaded from the downloads page.

Memory optimizations

A number of enhancements have been made to conserve the amount of application memory required to display 3D scene layers. These enhancements include:

  • supporting compressed ETC2 textures for mobile devices. ETC2 textures can be authored with ArcGIS Pro.
  • releasing texture memory more aggressively
  • using pre-defined or on-the-fly oriented bounding boxes (to improve culling of data not required to be rendered)
  • optimizing data structures for vertices and indexing them to reduce redundancy
  • and many more.

These enhancements have led to a memory reduction of 40-50% in many cases.

Local server compatibility

The new Local Server version 100.5 works with ArcGIS Runtime 100.5 and supports ArcGIS Desktop 10.7 and ArcGIS Pro 2.3. See Local Server Geoprocessing tool support topic for the list of Geoprocessing tools supported at 100.5.

API changes

Changes to feature selection API

These methods that were deprecated at 100.4 no longer function at 100.5:

  • FeatureLayer.selectionWidth

Behavior changes

  • Selection of features and graphics has been completely redesigned and overhauled in order to improve performance by taking advantage of the GPU and also to accommodate new functionality in this release such as annotation and reference scale. As a result, the appearance of selected features and graphics has changed from previous releases. Visually, selection is now more bold, and displayed on top of all content in a map view or scene view rather than on just the selected features or graphics, making it more distinguishable and easier to spot in bright ambient light conditions. Read more about this change in this blog post: Selection behavior changes in Runtime 100.5.
  • Starting from version 3.0 of mobile map packages, maps are returned from the package in the order in which they were added to the package, rather than alphabetically.
  • Default parameters for taking a map offline using on-demand and pre-planned workflows are now based on the options chosen by the map author in the offline settings of the web map.
  • Surface now returns elevation from the top most elevation source (i.e the source that was added last) when two or more overlapping sources contain information for the same location. In previous releases the bottom most source was used. This change now makes it consistent with how elevation data is displayed in a sceneview for overlapping sources, and is also consistent with how content is returned from operational layers (for example, in identify operations)
  • When opening web scenes, scene layers containing integrated mesh data in the I3S format are now returned as IntegratedMeshLayer type instead of the generic SceneLayer type that was previously used.
  • Visibility analysis such as Viewshed and LineOfSight are now computed based on the geometry of the observer/target. Previously, the analysis was computed based on the center of the symbol used by the observer/target
  • SketchEditor.EditConfiguration returns null until the sketch editor is started (when SketchEditor.StartAsync is called, in other words). In previous versions, it was possible to make changes to the edit configuration that would then be overridden when StartAsync was called.

Deprecations

Support for iOS 10 was deprecated in a previous release and ArcGIS Runtime SDK 100.4 was the last release to support it. A minimum of iOS 11 is required at 100.5.

Support for development of UWP apps for the ARM32 architecture was deprecated in a previous release and ArcGIS Runtime SDK 100.5 is the last release to support it.

Issues resolved

  • BUG-000118198 Highest LOD available in TPK not rendered at the appropriate map scale
  • BUG-000116810 QueryFeatures performance is slower in v100.3 Runtime when compared to v10.2.x.
  • BUG-000115663 Setting MaxFeatures parameter when performing a spatial query returns inconsistent results
  • BUG-000108264 RelationshipInfo is not returned properly from a mobile map package.
  • BUG-000117456 Popup.GetformattedValue() method crashes the application when the Popup field populates with minimum Date Value (1/1/0001).
  • BUG-000092734 Some of the KML files do not get loaded in 3D Scene view
  • BUG-000116502 When quickly generating animated simple marker symbols, the style of the feature layer in the map is replaced by the style of the animated simple marker symbol.
  • ENH-000115061 Request for disabling automatic realignment of the Mapview when the Mapview.LocationDisplay.IsEnabled is set to False.
  • BUG-000116792 Layers in a mobile map package created using ArcGIS Pro do not respect label stacking properties.
  • BUG-000108637 The ReverseGeocodeAsync method does not return all of the ResultAttributeNames found in the GeocodeParameters
  • BUG-000104032 Collada models are not rendered correctly with ModelMarkerSymbol.
  • BUG-000103661 ArcGIS Runtime doesn't honor Arcade expression while consuming as a web map.
  • ENH-000116571 Include information in the Local Server documentation that to create geoprocessing packages in ArcGIS Pro that are ArcGIS Runtime enabled, one must use the Package Result tool
  • BUG-000115806 Rendering geodatabase crashes intermittently in ArcGIS Runtime application while the geodatabase is displayed without any issue in ArcGIS Pro.
  • Invalid argument error occurs when adding a new or existing feature with geometry to the table
  • BUG-000114231 A feature service layer with a picture marker symbol with x-offset or y-offset set is not displayed properly as a feature layer
  • BUG-000117217 Graphics floating in draped mode in a scene (dynamic mode only)
  • BUG-000116867 Deadlock in SceneView on destruction
  • BUG-000114143 Military symbols fail to display correct when resizing them in a Unique Value Renderer.
  • BUG-000117464 Crash due to graphics list being modified at the same time the graphic objects are deleted
  • BUG-000117464 Crash due to graphics list being modified at the same time the graphic objects are deleted
  • BUG-000120016 Adding a multipoint object containing more than 250 points as a graphic using ArcGIS Runtime crashes the MapView.
  • BUG-000116279 Cannot create TileCache from a path on Linux only
  • BUG-000116794 Loading MapImage Sublayers causes MapImageLayer to draw incorrectly
  • BUG-000117070 When creating features in a downloaded offline map, Runtime returns the error message, "The table is not editable" when the feature service dataset uses the database time for editor tracking.
  • ENH-000116951 How to handle Integrated Windows Authentication in ArcGIS Runitme?
  • BUG-000118069 System.Threading.Tasks.TaskCanceledException thrown on assigning the MapView to System.Windows.Forms.Integration.ElementHost in ArcGIS Runtime SDK WPF app.
  • PKI Authentication Crash. See this Esri Community post
  • BUG-000117627 Using SketchEditor, an arrow is drawn in the reflected direction when the MapView displays the whole world map.
  • BUG-000118762 ServiceFeatureTable Query operation with complex geometry results in exception "Invalid URI: URI string too long"
  • BUG-000117733 The 'GeometryChangedEventArgs' NewGeometry property returns an incorrect number of points after a point is deleted using 'MapView.SketchEditor.DeleteCommand.Execute'.
  • BUG-000116526 ArcGIS Runtime must use POST request instead of GET when making FeatureTable.QueryFeaturesAsync are too long.
  • BUG-000118943 Slow performance of drawing tiles when zooming quickly using the mouse wheel.
  • GeometryUtils.ValidateSpatialReference : Provide helpful error message when SR do not match. See this Esri Community post.
  • BUG-000120306 ArcGIS Runtime for .Net shows blank Map when it falls back to Software Rendering
  • SketchEditor.EditConfiguration should be null when there is no active draw/edit. See this Esri Community post.
  • PortalItem: GetDataAsync for secured portal item for download with OAuth header fails with Bad Request. See this Esri Community post.
  • ArcGISWebException: null Message, does not fallback to use Detail. See this Esri Community post.
  • SketchEditor: Adding vertex with magnifier when there's a pan. See this Esri Community post.
  • SketchEditor: Freehand draw should not respond to flick. See this Esri Community post.
  • Forms TabbedPage Android: switching between tabs breaks mapview.
  • SketchEditor: Cannot undo moved vertex/geometry. See this Esri Community post.
  • Forcing WPF to render in software causes the map to not render. See this Esri Community post.
  • WMTSLayer may not use the right ResourceURLs, causing tiles to fail loading. See this Esri Community post.
  • Cannot load WMTS services with empty Keywords. See this Esri Community post.
  • WMTSLayer: URL template variables should be replaced in a case-insensitive way. See this Esri Community post.

Known issues

  • The .loz locator format is not supported by 32-bit apps. You may get an EXC_BAD_ACCESS error or an access violation when calling SuggestAsync on a composite locator from a mobile map package.

  • BUG-000119044 Shapefile polygon created from the Cut Polygons Tool in ArcMap causes ArcGISRuntimeException when updating the shapefile from an ArcGIS Runtime application.

  • BUG-000117942 The deleteFeature() method fails to delete a feature completely from a shapefile..

  • BUG-000119455 ArcGIS Runtime's GeocodeResult.Label property returns no value for some geocoded addresses.

  • BUG-000118590 A mobile map package (.mmpk file) created using decorations in the cartographic line symbol does not return the expected results in an ArcGIS Runtime app.

  • BUG-000120409 WMTS service does not load if the tile matrices of the service in the GetCapabilities file are not in sequential order.

  • BUG-000120079 Labels do not honor frequency settings when a Vector Tile Package (.vtpk) is deployed in ArcGIS Runtime.

  • BUG-000118445 MapView fails to zoom out to the full extent of larger basemap when a basemap with smaller extent is replaced by the basemap with the larger extent.

  • BUG-000115930 Heavy scale dependent feature layer affects the performance of other feature layers in an .mmpk file.

  • BUG-000107742 Analysis Services cannot be used with an AGSGeoprocessingTask in an ArcGIS Runtime app.

  • BUG-000118443 The KMZ file does not display image as a photo overlay in ArcGIS Runtime.

  • BUG-000119797 ArcGIS Runtime does not honor custom ArcGIS Pro Billboard3D stylx symbology.

  • BUG-000119575 The AngleAlignment Property of a MultilayerPointSymbol is not honored in a 3D scene but honored in SimpleMarkerSymbol.

  • BUG-000118574 3D scene in an ArcGIS Runtime app (WPF) does not render properly when using DTED files as the elevation source.

  • BUG-000118517 An ArcGIS Runtime SDK for .NET app fails to render 3D data layer in a web scene from ArcGIS Online.

  • BUG-000119384 An ArcGIS Runtime SDK 100.4 app displays a blurry image of an image service hosted in System.Windows.Forms.Integration.ElementHost.

  • Esri.ArcGISRuntime.ArcGISRuntimeException: DirectX failure CreateQuery code = 0x887a0005. See this Esri Community post.

  • Because some OGC services, such as WFS, WMS, WMTS, and KML, do not challenge clients to log in (with an HTTP/401 response code), the initial request for secured services must include login information. The following workaround is required to implement this workflow since .NET's HTTP client will not send a NetworkCredential unless challenged for one.

    • Workaround: Handle the HttpRequestBegin event to add network credential information to an authorization header.

      Use dark colors for code blocksCopy
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      private void EagerlyAddNetworkCredentials(object sender, HttpRequestMessage e)
      {
          var anyCred = AuthenticationManager.Current.FindCredential(e.RequestUri, AuthenticationType.NetworkCredential);
          if (anyCred is ArcGISNetworkCredential runtimeNetCred)
          {
              // If a NetworkCredential is found for this request, but we are still waiting to be challenged...
              if (!e.Headers.Contains("Authorization"))
              {
                  // Generate an HTTP Basic Authorization header per RFC 2617
                  var netCred = runtimeNetCred.Credentials.GetCredential(e.RequestUri, "Basic");
                  var rawCredentialBytes = Encoding.GetEncoding("ISO-8859-1").GetBytes($"{netCred.UserName}:{netCred.Password}");
      
                  // Add it to the request
                  e.Headers.Add("Authorization", $"Basic {Convert.ToBase64String(rawCredentialBytes)}");
              }
          }
      }
      
      // Handle HttpRequestBegin by adding login info to an authorization header for the request
      ArcGISHttpClientHandler.HttpRequestBegin += EagerlyAddNetworkCredentials;
      
      // Add valid network credentials to the AuthenticationManger and load the service ...
  • Http authentication always returns "401 (Unauthorized)" for Xamarin Android and Xamarin iOS when using the native HttpClient implementation (AndroidClientHandler and NSUrlSessionHandler respectively). The code shown above for pre-authorizing in the HttpRequestBegin event can be used to workaround this issue.

  • Error when authenticating with a portal using IWA: "Your login session has been reset. Please try again.". This error may occur when the credentials used to authenticate have been updated (to a different user) but the cookie from the previous login is still stored.

    • Workaround:Explicitly expire the cookies for previous logins.

      Use dark colors for code blocksCopy
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      var credList = AuthenticationManager.Current.Credentials.ToList();
      var clientHandler = new ArcGISHttpClientHandler();
      foreach (var credential in credList)
      {
          if (credential.ServiceUri != null)
          {
              clientHandler.CookieContainer.GetCookies(credential.ServiceUri).Cast()?.ToList()?.ForEach(c => c.Expired = true);
          }
          AuthenticationManager.Current.RemoveCredential(credential);
      }

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