This page provides details about enhancements in the 100.2.0 release of ArcGIS Runtime SDK for .NET. It also lists this release's deprecations, resolved issues, and known issues.
Enhancements
Sketch Editor
- Methods on
Sketch
class support programmatic manipulation of vertices relative to the selected vertex (insert after, move selected, and remove selected ).Editor Sketch
class adds the ability to get/set the selected vertex and receive notifications when the selected vertex changes.Vertex Require
property provides an alternative editing mode to help prevent accidental editing of point features.Selection Before Drag - Sketch creation modes that rely on tap (point, polyline, and polygon) now support adding a vertex when using tap and hold to display the magnifier.
Popups
- New
Popup
andManager Popup
classes provide enable you to more easily create the UI experience for viewing and manipulating popups.Attachment Manager
SceneView
- The
Scene
now continues to rotate following a flick interaction. This behavior can be enabled and disabled via theView Esri.
property.ArcGIS Runtime. U I. Scene View Interaction Options. Is Flick Enabled
New layers
A new WMS layer is available that can display content from OGC-WMS services in maps and scenes. You can identify features that are displayed, and generate a legend for them. Only WMS version 1.3 is supported at this release, but support for other versions will be added in a future release.
A new ENC layer is available that can display content from ENC (electronic navigational charts) data in S-57 format. ENC is a vector chart that conforms to the IHO specifications contained in Publication S-57, which is a transfer standard for vector data. The ArcGIS Runtime implementation follows the S-52 Presentation Library 4.0 specification for rendering. You can identify features that are displayed, select features, and change various display settings for view groups, text, and other elements such as isolated dangers, contours, color scheme, and so on. S-63 is not supported at time of publishing.
New data formats
Direct read of Shapefile datasets is now supported. Shapefiles can be added as a feature layer for display in maps and scenes. You can also add and edit features in the dataset through the shapefile feature table.
Support for the OGC GeoPackage format has also been added this release. You can add vector and raster datasets in a GeoPackage to your maps and scenes as feature layers and raster layers respectively. You can also add and edit features in an existing GeoPackage feature table.
Rendering improvements
Feature layers can now be rendered dynamically in addition to statically, just like graphics overlays. You can set the rendering mode at the map or scene level via load settings or on a layer by layer basis at the feature layer level. Dynamic rendering improves the appearance and interactivity of features during map or scene navigation. Feature layers containing point geometries are rendered dynamically now by default and their symbols remain screen-aligned in map views and will be billboarded in scene views. Feature layers containing polygon or polyline geometries are still rendered statically by default, but you can choose to render them dynamically to allow for 3D behavior such as extrusion based on feature layer attributes and surface placement based on z values
Display performance of graphics overlays has also been improved when updating large volumes of graphics. In some cases, the performance as a measure of frame rate is 2x faster compared to previous releases.
New multi-layer symbol types have been introduced to better represent working with feature layers that contain advanced cartography. At this release, these symbol types cannot be created by developers but can be authored in ArcGIS Pro and deployed through feature services, Mobile Map Packages, and Mobile Style files for use in the runtime. In future releases, these symbol types will be further expanded so that developers can produce sophisticated cartographic effects by combining multiple symbol layers.
Time support
You can now apply a time extent to map views and scene views to filter the display of content from time-aware layers. Time-aware layers include feature layers, map image layers, and raster layers. You can apply time offsets to time-aware layers, which can be used to compare data over time. You can also specify temporal parameters when querying a feature table.
Analysis
With the new Scene Analysis API you can define a variety of analyses to be performed using data displayed in the current 3D scene view, then render results that are updated dynamically. This release includes two types of scene visibility analyses: viewshed and line of sight. Viewshed highlights areas in your 3D scene that are visible from a given observer. Line of sight shows which segments are visible along a line drawn between an observer and a target location. For either type of analysis, the observer and/or target may be moving or stationary.
The new statistics query API allows you to get any of the following statistics for a specified field in a feature table: Sum, Average, Count, Minimum, Maximum, Standard Deviation, or Variance. In the statistics query parameters, you can define filters for features to include in the statistics (based on attributes, spatial relationships, or time extent) as well as how the results are grouped and sorted.
Coordinate systems and transformations
Geographic transformations (or datum transformations) can now be discovered, defined, used in project
function of the geometry engine class, and chosen to be used by default. Prior to this release, the most suitable transformations have been used automatically whenever data is projected. A new transformation catalog class lets you look up a list of the best transformations to use when projecting between two spatial references that have different datums. The new method, get
, provides a list of applicable transforms for the two spatial references you provide, ordered by suitability. You can even pass in a specific envelope to get back transforms suitable for that specific area. You can define a transformation by well-known ID (WKID) or create a custom transformation using well-known text strings. You can also change the default transformation that is used internally via gtdefaults
. Both equation-based and grid-based transformations are supported. You can use is
to determine whether required grid transformation data files are missing. The grid transformation files needed by your app can be downloaded from the downloads page.
Offline maps—preplanned workflow
This release enhances on-demand workflows with support for exporting and downloading vector tile packages from vector tile map services hosted by ArcGIS Online or ArcGIS Enterprise. Vector tile packages contain a default style to define how tiles are rendered. Vector tile layers can also reference custom styles as resources in a portal item. This release also supports downloading and applying custom style resources to vector tile layers on the client.
This release expands your ability to take maps offline with the new preplanned workflow. Offline maps allow your users to continue being productive even when their network connectivity is poor or non-existent. The preplanned workflow supplements the existing on-demand workflow by providing an alternative approach of allowing the map author to define and pre-create offline map areas instead of the field worker. Your field workers can then download map areas as required. With both of these offline workflows, the field worker can synchronize any updates to operational data when connectivity is restored.
Transactional editing
Transactional editing is now supported in the geodatabase and geodatabase feature tables. This allows you to perform a number of edits and then choose to commit all of them together as one unit, or roll them all back if any of them encounters an error. Nested transactions are not currently supported.
Localization
Directions returned by route task and closest facility task are available in 10 additional languages - Danish, Finnish, Hindi, Croatian, Indonesian, Norwegian Bokmål, Romanian, Serbian, Vietnamese, and Chinese (Taiwan). If the requested language isn't available, directions fall back to a default language instead of failing. Furthermore, error messages returned by Route, Service Area, and Closest Facility tasks are now consistent and translated into all supported languages. As part of these changes, some Direction
types (Length, Time, Summary, TimeWindow, ViolationTime, ServiceTime, EstimatedArrivalTime, CumulativeLength) are no longer reported. These messages did not respect platform locale settings for formatting numbers, dates, and times messages, and the information they contained is available through other properties in the results.
Deprecations
Version 100.2 is the last release to support:
- .NET Framework versions 4.5.2 and 4.6. In the next release, the minimum will be 4.6.1.
- Development with Visual Studio 2012 or 2013. In the next release, the minimum will be Visual Studio 2015.
- Xamarin.Android development for API levels 15 (Android 4.0.3-4.0.4), 16 (Android 4.1-4.1.1), 17 (Android 4.2 - 4.2.2), and 18 (Android 4.3). In the future, the minimum will be API level 19 (Android 4.4).
- Xamarin.iOS development for iOS 9. In the next release, the minimum will be iOS 10.
- UWP and Xamarin.Forms UWP development for Windows 10 version 1607 (OS build 14393) and 1703 (OS build 15063). In the next release, the minimum will be version 1709 (OS build 16299), also known as the Fall Creators Update.
Issues resolved
- BUG-000092352: Japanese field names appear garbled when shapefiles with the Shift-JIS character code are loaded.
- BUG-000102308:
Mobile
doesn't honor complex symbology used in Utility Network. Requires mobile map package to be repackaged with ArcGIS Pro v2.1.Map Package - BUG-000104759: The
Route
method fails to generate a route with the secured route service in UWP version 100.0. Note: Update Microsoft.NETCore.UniversalWindowsPlatform to v5.2.2.Task. Create Async - BUG-000105070: The
Hit
method fails to return polyline graphics if the spatial reference of the map is a Geographic Coordinate System.Test - BUG-000106470:
Layer
method has no effect on the layer order.Collection. Move() - BUG-000107196: Formatted Label expression of Mobile Map Package isn't honored.
- BUG-000108002: Runtime does not use actual subtypes when populating
ArcGIS
andFeature Layer Info. Type Id Field Name ArcGIS
for a feature layer loaded from a mobile map package, unless the layer is symbolized on the subtype field. Requires ArcGIS Pro v2.1 (Q1 2018).Feature Layer Info. Feature Types - BUG-000108493: Tif Rasters with a spatial reference of 102100 do not display in the correct location in a Runtime 100.1 application.
- BUG-000109265: Runtime SDK for .NET 100.1.0 guide states that we can use
ArcGIS
class to create a map but this class is not there in the API reference.Map - BUG-000109273: Authentication manager throws uncatchable null exception when user cancels authentication on Xamarin.Forms iOS.
- ENH-000100382: Provide a sample which demonstrates how to synchronize the viewpoints of the
Map
and theView Scene
.View - ENH-000103969: Functionality to use custom geotransformations missing in ArcGIS Runtime SDK for .Net 100.
- ENH-000107225: Support for Time on Layers and the
Map
/View Scene
.View Duplicate
Not Respected inLabels. Preserve Duplicates Graphics
. See Esri Community discussion.Layer - Polygon graphic that crosses the dateline is clipped in dynamic mode . See Esri Community discussion.
- App freezes sometimes when zooming on S57 layer. See Esri Community discussion.
Route
Error with curves and barriers. See Esri Community discussion.Task. Solve Route Async System.
when usingArgument Exception Show
. See Esri Community discussion.Callout For Geo Element - Polygons over poles not rendered correctly. See Esri Community discussion.
Text
being rendered incorrectly when passing across International Date Lines. See Esri Community discussion.Symbol Service
: 'Invalid JSON' with Sqlite_error when adding a feature layer. See Esri Community discussion.Feature Table - App Crash While Adding Operational Layers. See Esri Community discussion.
- MMPK: Bad Symbol Rotation. See Esri Community discussion.
Shapefile
- How to project to a different spatial reference. See Esri Community discussion.Table - MapView freezes permanently on iOS. See Esri Community discussion.
- App crashes frequently during zoom when many local feature layers are included in a map. See Esri Community discussion.
Map
freezes permanently on iOS. See Esri Community discussion.View Shapefile
- How to project to a different spatial reference. See Esri Community discussion.Table Text
Symbol Halo
andColor Halo
properties have no effect when used with graphics in dynamic mode in aSize Scene
.View - Map's
initial
does not work intermittently.Viewpoint - Inconsistent drawing delay for some features from a service feature table when zooming in and out.
- Web map editing overrides are not applied to feature layers.
- Crash may occur on 5.1.1 Android Nexus 7 when zooming and panning with vector tiled layers.
- Reproject the area of interest to map's spatial reference when using
Offline
.Map Task Text
for polygon graphic spanning the dateline and rendered in static mode is displayed in the wrong location when zooming out.Symbol - Z-aware feature layers do not render correctly in a
Scene
.View - Feature layer loads but doesn't render when there is a "." in the field name.
Popup.
uses label/alias values instead of field names as keys for the attribute dictionary when used with ArcGIS map services.Geo Element. Attributes RT
fails for layer that has loaded but not rendered yet._Geo View _get Layer View State - Feature layers with indexes on GlobalID fields may cause an app to crash.
- Functions are not supported in where clauses for labeling.
Service
does not repopulate after callingFeature Table Clear
.Cache - Querying a feature table fails to call completion handler when querying a table that failed to load.
- Leaving location display running on a Windows or macOS desktop will crash after running for a short period of time.
Auto
andPan Mode Initial
ignored if they are set before startingZoom Scale Location
.Display Geoprocessing
throws "invalid start of JSON" exception when it contains input parameter type ofJob. To Json Geoprocessing
with null features.Features Geoprocessing
does not populateJob. From Json Geoprocessing
. Cannot rely on deserializedFeatures. URL Geoprocessing
if it containsJob Geoprocessing
.Subsequent serialization of job fail because it becomes an invalid JSON.Features - Text in vector tiled layers may not display at certain scales.
- Models in a SceneView may render black on iPhone 5 devices.
Known issues
Layers
- Android: vector tile layers do not render on the Visual Studio emulator.
- BUG-000106101 Vector tiles using ArcGIS Runtime SDK for .NET fail to display some Chinese characters. Workaround: use a mobile map package (
.mmpk
) or a mobile basemap layer from a .geodatabase file. - RasterLayer display issues if raster has non-square pixels (DTED, NITF).
Raster
may only display when viewed at a large scale. Workaround: Use ArcGIS Desktop to build pyramids for the raster.Layer Raster
does not get populated with file name.Layer. Name WMS
returns NULL instead ofSublayer. Sub Layer Contents Array
.Observable - Vector tiled layers created from a URL do not have attribution.
ArcGIS
does not support legend info.Scene Layer - The following feature layer fields are not fully supported in ArcGIS Runtime:
subtype
,Field default
, andSubtype Code subtypes
(these fields are new in ArcGIS Pro 2.1 and ArcGIS Enterprise 10.5). - Loading feature layers with symbols that have an outline of less than 0 will return an exception.
- When adding rasters to a mosaic dataset that is already being used for a raster layer, the rasters will not display.
Maps (2D)
- Mobile map packages (.mmpk files) that are created in ArcGIS Pro 2.1 and that contain tile packages (.tpk files) or rasters are not supported.
- BUG-000103280 - While navigating a map on Android devices, basemap tiles do not load completely. Workaround: change the HTTP handler from
Default
toAndroid
. - BUG-000107699 -
Map
doesn't place the callout at the definedView. Show Callout At Map
when running on Windows Phone. This bug only affects debug mode and is caused by an issue in the underlying JIT compiler for ARM.Point - Identify operation on a WMS layer gives wrong results if the
Map
is rotated.View Map
View location
returns incorrect coordinates in wrap around mode.To Screen Map
grid lines near the date line and poles may not display.View - Cloning an unloaded
Map
does not render in aMap
.View - Moving map view to a screen with a different DPI zooms the map in and out (5-10%).
- Map view doesn't zoom to geometry if the supplied geometry's envelope has zero height or width.
- Saving map with ForceSave false and feature collection layers by reference throws exception. Workaround: ForceSave the map and while loading the saved map set the visibility of FeatureLayer referenced by FeatureCollectionTable to true.
Scenes (3D)
- When setting a negative pitch value with the
rotate
function onTo Camera
, roll is not changed. Camera.rotate
does not apply the value for roll.Around - For
Polygon
andPolyline
graphic overlays, extrusion is not updated when value of attribute used in extrusion expression change. - 3D
Simple
arrow marker will display visible artifacts along the line when using static rendering.Line Symbol - 3D
Simple
arrow marker does not draw arrowheads when using dynamic rendering.Line Symbol - Labeling features and graphics is not supported in a
Scene
.View - Layer refresh interval is not supported on a
Scene
.View - Graphics that are not visible can be identified in a
Scene
.View
Services
- When using
Export
to download an item resource cache, job status will immediately change fromVector Tiles Job Not
toStarted Succeeded
. - Definition expressions using time fields on service feature tables will result in no features being displayed.
- Setting a color map raster function as rendering rule on an image service has no effect.
- Setting a rendering rule on
Image
must occur prior to load.Service Raster - Identify does not return results when Geometry field is not exposed on service.
- Related tables: When an origin feature is deleted, the key field of the related feature is not set to null for hosted services that have a non-unique primary key.
Offline
doesn't always send updates to the service if it has layers with different origin spatial references.Map Sync Task - Loading a
Service
causes an invalid JSON error when the service contains a reserved field name, such as one that starts withFeature Table "gdb
._"
Symbols, renderers, and graphics
Picture
ScaleX and ScaleY not supported in static rendering mode.Fill Symbol - Symbols in a layer do not render if the renderer has rotation expression based on a field that does not exist.
- Diagonal fill symbols render in opposite directions between JavaScript and Runtime.
- Symbol sizes for graphics in static mode differ in size between map and scene views.
Text
doesn't honor the screen alignment property for feature layers.Symbol - Changing
Text
font weight or style is not supported on aSymbol Scene
.View - Font decoration, halo, and background properties are not supported on
Text
for graphics and features in dynamic rendering mode in aSymbol Scene
.View - Feature layers from hosted services on ArcGIS Enterprise 10.3 and 10.3.1 ArcGIS Servers cannot use advanced symbology.
Label
will return an empty array for unsupported text symbols.Definition. To Json - Saving a map with unloaded layers creates a portal item with no layers when displayed in ArcGIS Online.
- A Bing Maps layer created with a Portal needs to load the Portal first.
- New TypeKeywords and Tags objects are created when a
Portal
is loaded, rather than repopulating the existing objects.Item - A service feature table will not render when unique value renderer contains classification values with commas.
- Well-formed polygons that intersect one of the globe's poles may not render correctly.
- Symbol rotation type (arithmetic/geographic) is ignored by graphics
- Creating a swatch from a scene symbol returns a null image.
Analysis
- Android: Line of Sight and Viewshed GeoAnalysis results do not render on the Visual Studio emulator.
Feature collections
- Cannot identify a
Point
feature with an ObjectId of 0 in aFeature
.Collection - Z and M values in GeoPackage FeatureTables are not optional.
Feature
.Collection To
does not include popup info.JSON - When creating a feature collection from an array of graphics, the graphics' symbols are not honored. Instead, the default symbol is used.
Web maps
- Web maps with dynamic layers produced by ArcGIS Runtime do not draw correctly in ArcGIS Pro. Any overridden properties (renderer, labeling, opacity, sublayer visibility, and so on) will revert to service-specified defaults.
- Labeling behavior and display in a web map may not match between JavaScript and Runtime.
General
- WPF designer: Exception: Cannot create instance of "MapView" or Exception: Cannot create instance of "SceneView" error may be seen in the designer.
- Android: Application crash on Android 8 (Oreo) when using
Shared Runtime
andFast Deployment (debug only)
. Workaround: disableUse Fast Deployment (debug only)
(and in some cases, you may also need to disableUse Shared Runtime
) inProject Properties > Android Options
. For more information, see https://bugzilla.xamarin.com/show_bug.cgi?id=60236. - WPF:
Esri.
cannot be used within an MFC-based project.ArcGIS Runtime. WPF - Popup title does not use name when the title is defined with a coded value domain field.
- Field name in popup definition for Arcade expression does not include the title for the expression field.
Popup
Symbol
returns null for features from a map service.- When registering a mobile geodatabase with a new user (different from user who created the mobile geodatabase), local edits still apply the user who created the geodatabase when editor tracking is enabled.
- When using local street address locators, suggestion results without a house number cannot be used to retrieve results.
- Adding rasters to
Mosaic
with invalid parameters can fail without notifying the user.Dataset Raster File
when opening incorrect file type for mobile map package (Not Found Exception *.mmpk)
.