Version 100.2.1 of ArcGIS Runtime SDK for iOS, also known as Update 2.1, is a minor update to 100.2.0. This page lists enhancements, resolved issues, and known limitations for 100.2.1 as well as for 100.2.0.
For release notes for the previous release, see Related topics at the bottom of this page.
Enhancements at 100.2.1
- Use URLs without a GetCapabilities query string.
- WMS versions 1.1.0, 1.1.1, and 1.3.0 are now supported. Previously, only 1.3.0 was supported.
- You can now set the visibility of WMS sublayers.
Mobile map packages
- This release supports mobile map packages that contain raster datasets and tile packages. These mobile map packages can be created with version 2.1 of ArcGIS Pro. If you load an MMPK's map (explicitly or by passing it to the map view), a RasterLayer or ArcGISTiledLayer is created to display the raster dataset and tile package, respectively.
- To access the mobile maps package's raster dataset you need to unpack the mobile map package first. For details, Accessing the mobile map package.
3D scene support for tiled layers in WGS84
3D scenes now support the use of WGS84 based tiled layers as a basemap or layer. Previously, scenes supported only tiled layers that used the Web Mercator projection.
Issues resolved at 100.2.1
- BUG-000109070: RasterLayer sometimes will only displays when zoomed in to large scale.
- BUG-000109508: Exception "Invalid XML.: Parser was expecting ows:ServiceIdentification." when loading WMTS.
- Updating a Feature Collection Table throws an exception saying that geometry cannot be updated even though "can edit geometry" property is true. This issue was new in 100.2.0.
- Using Arcade expression to change the size of a symbol based on map scale is not honored.
- Lines may render incorrectly on a 3D scene if the end caps of a line are smaller than a pixel. This issue was new in 100.2.0.
- The following 3rd-party libraries have been updated to the latest versions:
- Expat: 2.2.5
- Sqlite3: 3.20.0
- Zlib: 1.2.11
Enhancements for 100.2.0
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. For more information, see the WMS layer section in "Layers and tables."
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.
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 ArcGIS Runtime.
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 spatial references topic.
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.
Updated Apple platform support
This release adds support for building applications using XCode 9, and deploying them on devices running iOS 11 and iOS 10. Xcode 8 and iOS 9 are no longer supported.
Issues resolved at 100.2.0
- 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.
- 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.
Deprecations at 100.2.0
Version 100.1 is the last release to support:
- XCode 8. With the 100.2 release, the minimum will be Xcode 9.
- iOS 9. With the 100.2 release, the minimum will be iOS 10.
Known issues at 100.2.0
- 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.
- AGSArcGISSceneLayer does not support legend info.
- The following feature layer fields are not fully supported in ArcGIS Runtime: subtypeField, defaultSubtypeCode, and 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.
- At version 100.2.1, Runtime's ENC implementation does not check for a version on generated System ENC (SENC) files. As a result, Runtime apps built on 100.2.1 may crash when attempting to open ENC files previously opened by an app using Runtime 100.3 or later if both apps use the same SENC data path.
- 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.
- 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.
- Map view recenters instead of zooming to the desired scale when EaseInQuart, EaseInOutQuart, EaseInQuint or EaseInOutQuint viewpoint animation curves are used.
- 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 AGSImageServiceRaster 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.
- AGSTextSymbol doesn't honor the screen alignment property for feature layers.
- Changing AGSTextSymbol 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 ArcGIS Enterprise 10.3 and 10.3.1 ArcGIS Servers cannot use advanced symbology.
- AGSLabelDefinition.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 AGSPortalItem 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.
- Cannot identify a Point feature with an ObjectId of 0 in a FeatureCollection.
- Z and M values in GeoPackage FeatureTables are not optional.
- AGSFeatureCollection.toJSON does not include pop-up 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.
- Pop-up title does not use name when the title is defined with a coded value domain field.
- Field name in pop-up definition for Arcade expression does not include the title for the expression field.
- AGSPopup getSymbol 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 AGSMosaicDatasetRaster with invalid parameters can fail without notifying the user.
- FileNotFoundException when opening incorrect file type for mobile map package (*.mmpk).