Release notes for 100.12

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

Enhancements

New Geotrigger API

With this release, ArcGIS Runtime introduces a new Geotrigger API. Geotriggers let you monitor your GIS data in real-time and receive notifications when you encounter specified conditions, such as when a device enters or leaves an area (a workflow also referred to as Geofencing). With Geotriggers you can monitor locations from whatever AGSLocationDataSource you choose while also tapping into the full power of ArcGIS Runtime's AGSGeometryEngine for evaluating spatial relationships.

See the new Geotrigger topic in the developer guide for more information.

Maps

Support for floor-aware maps

At 100.12, ArcGIS Runtime supports floor-aware maps. These maps make it easy to visualize building floor plans and explore indoor data. ArcGIS Runtime apps can now detect floor-aware maps and filter their display based on floor levels. See the AGSFloorManager class for more information. ArcGIS Pro 2.8 is required for publishing floor-aware web maps and an upcoming version of ArcGIS Pro (2.9) will allow you to include floor-aware maps in a mobile map package. You can use the ArcGIS Indoors information model to create floor-aware data or you can configure existing maps and layers to make them floor-aware.

Support for web map specification 2.20

At this release, ArcGIS Runtime supports version 2.20 of the web map specification.

Geometry

Additional support for true curves

In addition to using true curves in mobile map packages (introduced at 100.11), you can now use true curves from a user-managed ArcGIS Enterprise feature service that supports curves. You can display, query, select, identify, and perform online edits on these curves. You may know true curves as parametric curves.

You cannot use true curves in offline workflows, in geoprocessing, or in ArcGIS Online. Not all geometry engine methods support true curves.

Create and display true curves

Create true curve geometries in codeYou can create polygon and polyline geometries from new curve segments defined in code (cubic beziers and elliptical arcs) using the new classes, AGSCubicBezierSegment and AGSEllipticArcSegment. Additional information about creating segments is in the Segments section in the Geometry topic.

Fetch true curves from a serviceBy default, your app will fetch densified curve geometries from feature services that support curves. You can choose to fetch true curves by setting the new global serviceCurveGeometryMode to fetchCurves.

Edit true curves

Edit true curve geometryYou can edit existing geometries' true curve segments using geometry builders. The API now includes properties on AGSGeometryBuilder, AGSPart, and AGSSegment that indicate whether or not curves are present. AGSPolygonBuilder and AGSPolylineBuilder behavior has changed to support curves. If your app provides the ability to create or edit curve geometries, you can use properties on AGSArcGISFeatureServiceInfo to find out what curve support each feature service has. With this information you could adapt your app behavior for each service. For example, you could densify any curve geometries before sending them as edit updates to a service that does not support updating curve geometries.

To curve-enable a user-managed ArcGIS Enterprise feature service, see the Properties that affect editing section of Editor permissions for feature services in the ArcGIS Enterprise help.

Send true curves to a serviceYou can inform a feature service that your app is a true-curve client so that the service will allow your app to edit. Feature services can be published with protections that disallow edits from curve-unaware clients. Use the new serviceCurveGeometryMode member and AGSServiceCurveGeometryMode enum to inform the service your app is a true-curve client. This setting applies throughout the liftetime of the process; set it before any requests are made (an exception will be thrown if you try to change it later).

Symbols

Support control measure lines with ordered anchor points in Arcade-based military dictionary styles

The dictionary renderer now supports symbolizing control measure lines based on ordered anchor points according to standard military symbology specifications MIL-STD 2525 and APP-6. Updated military dictionary styles will be available for download with the ArcGIS Pro 2.9 release and developers will be able to use these styles to render control measure lines by setting the dictionary symbol style's model configuration property (DictionarySymbolStyleConfiguration) to "ORDERED ANCHOR POINTS".

Support scale-based symbol classes and alternate symbols for unique value and class break renderers

ArcGIS Runtime adds support for rendering scale-based symbol classes and alternate symbols in this release. Unique value and class break renderers allow you to specify criteria to uniquely symbolize data so the user can see trends and patterns in the data.

One of the most common approaches to alternate symbols is to use a complex symbol at large scales and a simple, but related alternate symbol at small scales. Scale-based symbol classes and alternate symbols simplify the number of redundant layers in a map and allow for easier maintenance of these layers. You can use ArcGIS Pro 2.9 to publish mobile map packages (.mmpk) containing alternate symbols information. For more information on scale-based symbol classes and alternate symbols see Scale-based symbol classes in the ArcGIS Pro documentation.

Labeling

New feature-oriented properties and methods on annotation layers

At this release, AGSAnnotationLayer and AGSAnnotationSublayer have been enhanced to include properties and methods that enable feature-oriented interaction with annotation text. This includes options to set a definition expression, select annotation text, and set visibility of annotation text.

Client-side labeling of point scene layers

Point scene layers can be published to include labeling info in a service or mobile scene package. At this release, ArcGIS Runtime supports dynamic client-side labeling of point features in a point scene layer using the available labeling info.

Polygon labels support rotation

The AGSTextSymbol rotation and the AGSLabelDefinition angle expressions are now applied to Horizontal polygon labels, allowing some manual control over the layout angle. A future release will include automatic rotation to match the polygon for labels with textLayout of Straight or FollowFeature.

Support Arcade to get domain information in labeling and popups

Arcade 1.13 provides the ability to access table domain info for a feature. At this release, ArcGIS Runtime supports the Domain($feature, fieldName) function to get domain information directly from a feature.

Support Arcade to get schema information in popups

Arcade 1.13 provides the ability to access table schema info for a feature. At this release, ArcGIS Runtime supports the Arcade Schema($feature) function to get schema information directly from a feature.

Support for new Arcade 1.14 functionality

  • FromJSON function - to convert from a JSON string to an Arcade object
  • Nautical Miles unit - added to the list of supported units
  • Week function - for finding which week of the year a date falls in

Network analysis

Additional voice guidance customizations for navigation

At 100.12, a new callback allows setting the state of the text-to-speech engine. Setting this prevents multiple voice guidance events interfering with each other.

Support for Slovak

Slovak is supported for driving directions.

Geodatabases

Read and edit standalone mobile geodatabases

Currently, ArcGIS Runtime supports mobile geodatabases that were generated by taking a webmap offline, exporting data from feature services, or authored as part of mobile map/scene packages.

At this release, ArcGIS Runtime also supports reading and editing of standalone mobile geodatabases generated by ArcGIS Pro. It requires ArcGIS Pro 2.7 or above to author standalone mobile geodatabase.

ArcGIS Runtime supports the following capabilities with standalone mobile geodatabases:

  • Spatial and nonspatial tables
  • Attachments
  • Relationships
  • Annotations
  • Domains
  • Subtypes
  • Views

All edits made using ArcGIS Runtime will be treated as anonymous for editor tracking purposes.

Editing of feature tables is disabled by default for mobile geodatabase feature datasets that are not yet supported in ArcGIS Runtime. This includes datasets such as Topology, Parcel Fabrics, Terrain, and so on.

Attributed Relationships

An attributed relationship is a type of many-to-many relationship that uses an intermediate table to store key attribute values for each individual relationship.

Runtime now provides RelationshipTableId and KeyFieldInRelationshipTable on the AGSRelationshipInfo class to allow developers to query and get attributes from an attributed relationship table.

Create service geodatabases and subtype feature layers from portal items

ArcGIS Runtime 100.12 provides the ability to create service geodatabases and subtype feature layers from portal items.

Utility networks

Honor association deletion semantics when editing

In a utility network, features that belong to a specific asset type can serve as containers or structures. Each of these containers or structures has association deletion semantics, which are rules that define what happens to associated features when the container or structure is deleted.

  • Cascade: deleting a container causes its associated features to also be deleted.
  • Restrict: deleting a container is not permitted if it contains associated features.
  • None: associated features are not deleted when their container is deleted.

In the 100.12 release, association deletion semantics are supported in a limited fashion. ArcGIS Runtime checks associated features recursively and prevents the deletion of containers/structures where Restrict semantics are violated.

OGC

Order by fields in OGC feature layer query parameters

At this release, AGSQueryParameters.orderByFields is supported for use with an OGC feature layer.

KML

Support for "check off only" list types

When specified for a container or network link, a AGSKmlListItemType value of CheckOffOnly prevents the user from making all items visible at once. In other words, the user can hide everything in the container or network link (check everything off), but cannot show everything on at the same time (check everything on). This setting is useful for containers or network links that contain a large amount of data.

Portal

Get developer basemaps from a Portal

Portals/Organizations can now configure a set of developer basemaps that are accessible and metered via API keys. To retrieve developer basemaps from a given portal use fetchDeveloperBasemapsWithCompletion() on the AGSPortal class.

The default developer basemaps provided by ArcGIS Online (AGOL) are built upon the basemap layer services. For further details, see the document Basemap layer service.

Coordinate systems and transformations (projection engine)

  • The algorithms that calculate geodesic lines were improved, particularly for near-antipodal cases.

  • Several vertical transformations for NAVD88 were added for when the coordinates are in US survey feet or international feet.

  • An Estonian geoid model for EH2000 was added.

  • A a new projection, Plate Carrée Oblique, was added. You can now set the center to any latitude-longitude values and rotate using an azimuth parameter.

  • New projected coordinate systems were added, including California Teale Albers using international feet, Colombia, KSA GRF17 UTM zones, SRGI2013 UTM zones for Indonesia, and several Snake Grid emulations for new rail systems in the UK.

See the Spatial references topic for more information about working with coordinate systems and transformations.

Breaking API changes

There are no breaking changes with this release.

Behavior changes

  • AGSPolygonBuilder and AGSPolylineBuilder behavior has changed to support curves.

  • When using imperial units, the voice guidance distances will now transition from reporting in miles to feet at a distance of 1000 feet. This previously happened at 660 feet.

  • When 2D labels overlap, the highest-priority labels will appear on top of the lower-priority ones.

  • With this release, a AGSLabelDefinition with a RepeatDistance value of 0 for labeling a line indicates that labels should not repeat. This is consistent with the behavior in ArcGIS Pro.

  • When 2D point labels are allowed to overlap other labels or features, AGSLabelOverlapStrategy is set to avoid, and AGSLabelDeconflictionStrategy is set to dynamic, the labels will spread out to minimize deconfliction.

  • Offset distance is now honored for straight-line labels.

Deprecations

There are no deprecations with this release.

Issues resolved

Issues addressed in this release are listed below.

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

BUG-000130386 The unhandled exception "Esri.ArcGISRuntime.ArcGISRuntimeException: Transformation resulted in geometry with NAN coordinates" error message is returned while switching basemaps only with an overlay set on the map view.

BUG-000137580 LabelDefinition.allowOverlapOfLabel does not place the labels at different positions.

BUG-000138152 Mobile map package labels fail to display at all scales.

BUG-000138187 A web scene containing a point scene layer with labels fails to display labels in a scene view.

BUG-000139514 A user who doesn't have access to an item on portal won't get an error stating that they don't have access.

BUG-000140465 When calling the GeometryEngine.LabelPoint method with a geometry containing true curves, the call hangs for more than 15 minutes.

BUG-000141157 Excessive memory usage in ArcGIS Runtime 100.11 when displaying a mobile map package that has a lot of symbols.

ENH-000109173 Add more clarification to the LocationDisplay.AutoPanMode property's remarks documentation for what automatically disables it.

ENH-000137688 Request to support the priority property of a label class while working with feature labeling.

ENH-000138662 Request for read/edit support in ArcGIS Runtime for mobile geodatabases created with ArcGIS Pro.

Known issues

Known issues or limitations for this release are listed below.

BUG-000132871 Application fails to retrieve the bookmarks for a mobile scene package (.mspk file).

BUG-000134159 Ordering fields by OrderByFields.Add(orderBy1) in a mobile map package (.mmpk file) with 40,000 features fails with an error.

BUG-000135080 The Field.Length property returns an incorrect value for a shapefile field.

BUG-000139221 The location returned by the locationDisplay.Start() method in a web map tile service (WMTS) basemap with the WKID 31256 spatial reference is incorrect.

BUG-000140414 Unable to display an ArcGIS Online image service with the Classify Intervals user-defined renderer.

BUG-000142153 AGSPolygonBuilder and AGSPolylineBuilder toGeometry method fails if the geometry builder contains empty points and curves.

BUG-000142195 True curves in mobile geodatabases display incorrectly if projected (mobile geodatabases created by ArcGIS Pro can contain true curves). Workarounds are to densify the curve geometries in the mobile geodatabases or to display them in the same spatial reference.

Changes in samples

Sample applications that demonstrate the use of ArcGIS Runtime API are available in the Sample Code tab on this website and in a GitHub repository. The following changes have been made in this release.

New samples

Enhancements in samples

  • Enhanced Add graphics with renderer to also show a curve.
  • Moved samples from named user to API keys where named user is not the point of the sample.
  • Replaced deprecated Utility Network property.
  • Made Runtime license optional.

Bug fixes in samples

  • iOS13: Dismissing attachment cards now saves changes.
  • Updated tile layer source for Build a legend.
  • Open map (URL) received new data.

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