Version 100.2.0 of ArcGIS Runtime SDK for .NET (WPF), also known as Update 2, is the second major update to 100.0.0. This topic describes what's new, provides a list of known limitations, and more.
For release notes for previous releases, see Related topics at the bottom of this page or sign in to the Downloads page and download the guide PDF for the version you want.
- Methods on SketchEditor class support programmatic manipulation of vertices relative to the selected vertex (insert after, move selected, and remove selected ).
- SketchVertex class adds the ability to get/set the selected vertex and receive notifications when the selected vertex changes.
- RequireSelectionBeforeDrag property provides an alternative editing mode to help prevent accidental editing of point features.
- 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.
- New PopupManager and PopupAttachmentManager classes provide enable you to more easily create the UI experience for viewing and manipulating popups.
- The SceneView now continues to rotate following a flick interaction. This behavior can be enabled and disabled via the Esri.ArcGISRuntime.UI.SceneViewInteractionOptions.IsFlickEnabled property.
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 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, etc. Support for the encrypted S-63 format will be added in a future release.
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 at 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.
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.
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.
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, getTransformationsBySuitability, 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_overrides.json. Both equation-based and grid-based transformations are supported. You can use isProjectionEngineDataMissing 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. Read more about geographic transformations in the topic Spatial references.
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 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.
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 DirectionMessage 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.
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 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.
Known issues resolved in this release
- BUG-000092352: Japanese field names appear garbled when shapefiles with the Shift-JIS character code are loaded.
- BUG-000102308: MobileMapPackage doesn't honor complex symbology used in Utility Network. Requires mobile map package to be repackaged with ArcGIS Pro v2.1.
- BUG-000104759: The RouteTask.CreateAsync 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.
- BUG-000105070: The HitTest method fails to return polyline graphics if the spatial reference of the map is a Geographic Coordinate System.
- BUG-000106470: LayerCollection.Move() method has no effect on the layer order.
- BUG-000107196: Formatted Label expression of Mobile Map Package isn't honored.
- BUG-000108002: Runtime does not use actual subtypes when populating ArcGISFeatureLayerInfo.TypeIdFieldName and ArcGISFeatureLayerInfo.FeatureTypes 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).
- 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 ArcGISMap class to create a map but this class is not there in the API reference.
- 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 MapView and the SceneView.
- ENH-000103969: Functionality to use custom geotransformations missing in ArcGIS Runtime SDK for .Net 100.
- ENH-000107225: Support for Time on Layers and the MapView/SceneView.
- DuplicateLabels.PreserveDuplicates Not Respected in GraphicsLayer. See GeoNet discussion.
- Polygon graphic that crosses the dateline is clipped in dynamic mode . See GeoNet discussion.
- App freezes sometimes when zooming on S57 layer. See GeoNet discussion.
- RouteTask.SolveRouteAsync Error with curves and barriers. See GeoNet discussion.
- System.ArgumentException when using ShowCalloutForGeoElement. See GeoNet discussion.
- Polygons over poles not rendered correctly. See GeoNet discussion.
- TextSymbol being rendered incorrectly when passing across International Date Lines. See GeoNet discussion.
- ServiceFeatureTable: 'Invalid JSON' with Sqlite_error when adding a feature layer. See GeoNet discussion.
- App Crash While Adding Operational Layers. See GeoNet discussion.
- MMPK: Bad Symbol Rotation. See GeoNet discussion.
- ShapefileTable - How to project to a different spatial reference. See GeoNet discussion.
- MapView freezes permanently on iOS. See GeoNet discussion.
- App crashes frequently during zoom when many local feature layers are included in a map. See GeoNet discussion.
- MapView freezes permanently on iOS. See GeoNet discussion.
- ShapefileTable - How to project to a different spatial reference. See GeoNet discussion.
- TextSymbol HaloColor and HaloSize properties have no effect when used with graphics in dynamic mode in a SceneView.
- AGSMap's initialViewpoint does not work intermittently.
- 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 OfflineMapTask.
- TextSymbol for polygon graphic spanning the dateline and rendered in static mode is displayed in the wrong location when zooming out.
- Z-aware feature layers do not render correctly in a SceneView.
- Feature layer loads but doesn't render when there is a "." in the field name.
- Popup.GeoElement.Attributes uses label/alias values instead of field names as keys for the attribute dictionary when used with ArcGIS map services.
- RT_GeoView_getLayerViewState fails for layer that has loaded but not rendered yet.
- Feature layers with indexes on GlobalID fields may cause an app to crash.
- Functions are not supported in where clauses for labeling.
- ServiceFeatureTable does not repopulate after calling ClearCache.
- 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.
- AutoPanMode and InitialZoomScale ignored if they are set before starting LocationDisplay.
- GeoprocessingJob.ToJson throws "invalid start of JSON" exception when it contains input parameter type of GeoprocessingFeatures with null features.
- GeoprocessingJob.FromJson does not populate GeoprocessingFeatures.URL. Cannot rely on deserialized GeoprocessingJob if it contains GeoprocessingFeatures.Subsequent serialization of job fail because it becomes an invalid JSON.
- Text in vector tiled layers may not display at certain scales.
- Models in a SceneView may render black on iPhone 5 devices.
- 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).
- RasterLayer may only display when viewed at a large scale. Workaround: Use ArcGIS Desktop to build pyramids for the raster.
- RasterLayer.Name does not get populated with file name.
- WMSSublayer.SubLayerContents returns NULL instead of ArrayObservable.
- Vector tiled layers created from a URL do not have attribution.
- ArcGISSceneLayer does not support legend info.
- Loading feature layers that have fill symbols with an outline with 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.
- BUG-000103280 - While navigating a map on Android devices, basemap tiles do not load completely. Workaround: change the HTTP handler from Default to Android.
- BUG-000107699 - MapView.ShowCalloutAt doesn't place the callout at the defined MapPoint when running on Windows Phone. This bug only affects debug mode and is caused by an issue in the underlying JIT compiler for ARM.
- Identify operation on a WMS layer gives wrong results if the MapView is rotated.
- MapView locationToScreen returns incorrect coordinates in wrap around mode.
- MapView grid lines near the date line and poles may not display.
- Cloning an unloaded Map does not render in a MapView.
- 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.
- When setting a negative pitch value with the rotateTo function on Camera, roll is not changed.
- Camera.rotateAround does not apply the value for roll.
- For Polygon and Polyline graphic overlays, extrusion is not updated when value of attribute used in extrusion expression change.
- 3D SimpleLineSymbol arrow marker will display visible artifacts along the line when using static rendering.
- 3D SimpleLineSymbol arrow marker does not draw arrowheads when using dynamic rendering.
- Labeling features and graphics is not supported in a SceneView.
- Layer refresh interval is not supported on a SceneView.
- Graphics that are not visible can be identified in a SceneView.
- When using ExportVectorTilesJob to download an item resource cache, job status will immediately change from NotStarted to 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 ImageServiceRaster must occur prior to load.
- 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.
- OfflineMapSyncTask doesn't always send updates to the service if it has layers with different origin spatial references.
- Loading a ServiceFeatureTable causes an invalid JSON error when the service contains a reserved field name, such as one that starts with "gdb_".
Symbols, renderers, and graphics
- PictureFillSymbol ScaleX and ScaleY not supported in static rendering mode.
- Symbols in a layer do not render if the renderer has rotation expression based on a field that does not exist.
- Symbol sizes for graphics in static mode differ in size between map and scene views.
- TextSymbol doesn't honor the screen alignment property for feature layers.
- Changing TextSymbol font weight or style is not supported on a SceneView.
- Font decoration, halo, and background properties are not supported on TextSymbol for graphics and features in dynamic rendering mode in a SceneView.
- Feature layers from hosted services on Portal for ArcGIS 10.3 and 10.3.1 ArcGIS Servers cannot use advanced symbology.
- LabelDefinition.ToJson will return an empty array for unsupported text symbols.
- 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 PortalItem is loaded, rather than repopulating the existing objects.
- 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.
- Android: Line of Sight and Viewshed GeoAnalysis results do not render on the Visual Studio emulator.
- Cannot identify a Point feature with an ObjectId of 0 in a FeatureCollection.
- Z and M values in GeoPackage FeatureTables are not optional.
- FeatureCollection.ToJSON does not include popup info.
- When creating a feature collection from an array of graphics, the graphics' symbols are not honored. Instead, the default symbol is used.
- 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.
- 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 and Fast Deployment (debug only). Workaround: disable Use Fast Deployment (debug only)(and in some cases, you may also need to disable Use Shared Runtime) in Project Properties > Android Options. For more information, see https://bugzilla.xamarin.com/show_bug.cgi?id=60236.
- WPF: Esri.ArcGISRuntime.WPF cannot be used within an MFC-based project.
- 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 MosaicDatasetRaster with invalid parameters can fail without notifying the user.
- FileNotFoundException when opening incorrect file type for mobile map package (*.mmpk).