Release notes for 100.12

This page provides details about enhancements in the 100.12 release of ArcGIS Runtime API for Java. It also lists this 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 LocationDataSource you choose while also tapping into the full power of ArcGIS Runtime's GeometryEngine 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 FloorManager 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.

Scenes

Indexed 3D Scene Layer (I3S) versions 1.7 and 1.8

ArcGIS Runtime now supports Indexed 3D Scene Layer (I3S) specification versions 1.7 and 1.8 for 3D Object Scene Layers and Integrated Mesh Scene Layers in applications deployed on macOS, Linux, and Windows. This enhancement delivers an improved user experience during the initial load and rendering of scene layers and during scene view interaction and navigation. Depending on the size and complexity of your data, you may see rendering time reduced by up to 75%, memory usage up to 20% lower, CPU activity up to 10% lower, and network requests reduced by up to 30%.

I3S version 1.7 provides improved indexing of nodes within scene services and scene layer packages that enables ArcGIS Runtime to make fewer requests for data, resulting in reduced network traffic or file access and faster layer load times. I3S version 1.8 adds support for textures encoded in Basis Universal, a GPU-optimized texture compression format that significantly reduces the image storage size while maintaining quality.

To ensure that you can take advantage of the latest improvements with your data, use the I3S converter in the I3S GitHub repository to update the version of an integrated mesh or 3D object scene layer (.slpk) to the latest version. Additionally, in ArcGIS Pro the Create 3D Object Scene Layer Package and Create Integrated Mesh Scene Layer Package geoprocessing tools can be used to create scene layers at the latest version.

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, CubicBezierSegment and EllipticArcSegment. 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 setServiceCurveGeometryMode() 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 GeometryBuilder, Part, and Segment that indicate whether or not curves are present. PolygonBuilder and PolylineBuilder behavior has changed to support curves. If your app provides the ability to create or edit curve geometries, you can use properties on ArcGISFeatureServiceInfo 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 setServiceCurveGeometryMode() member and ServiceCurveGeometryMode 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, AnnotationLayer and AnnotationSublayer 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 TextSymbol rotation and the LabelDefinition 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 RelationshipInfo 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, QueryParameters.setOrderByFields 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 KmlListItemType 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 fetchDeveloperBasemapsAsync() on the Portal 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.

JDK 11.0.12 support

This release of ArcGIS Runtime API for Java supports JDK version 11.0.12.

Apache http client upgrade

In this release of ArcGIS Runtime API for Java, the Apache HTTP libraries have been upgraded to version 5.

Local Server

ArcGIS Runtime Local Server 100.12 now supports geoprocessing and map packages created with ArcGIS Pro 2.8.x. The following geoprocessing tools are now supported with this release:

Behavior changes

  • PolygonBuilder and PolylineBuilder 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 LabelDefinition 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, LabelOverlapStrategy is set to avoid, and LabelDeconflictionStrategy is set to dynamic, the labels will spread out to minimize deconfliction.

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

SLF4J Failed to load class warning

The Apache HTTP libraries have been upgraded to version 5 which includes a dependency to the SLF4J (Simple Logging Facade for Java) library. When you run an ArcGIS Runtime application, you may see the following warning in the console window:

   
1
2
3
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Please refer to the SLF4J documentation about this warning and how to prevent it.

If you are not using the logging, you could include the following dependency in your build script. The example below shows how this can be achieved with Gradle:

  
1
2
dependencies {
    runtimeOnly 'org.slf4j:slf4j-nop:1.7.32'

This Apache HTTP dependency will cause runtime errors if you deploy your application in a fat jar, as it is a signed library. If you are using a fat jar deployment, then you will need to exclude the signing files from within the application jar. In Gradle this can be achieved by adding the following to the jar task:

    
1
2
3
4
// exclude signing files that come from dependencies
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"

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-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-000135517 Request for the the capability to run the Create Map Tile Package geoprocessing tool with the ArcGIS Runtime Local Server.

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 PolygonBuilder and PolylineBuilder 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

  • Updated Perform valve isolation trace to use filter barriers.
  • Enhanced Add graphics with renderer to also show a curve.
  • Replaced deprecated Utility Network property.
  • Updated gradle scripts for jars and version.
  • Removed gradle-wrapper.jar from samples.
  • Updated deprecated jcenter method to mavenCentral.
  • Excluded signed jars from individual samples.

Bug fixes in samples

  • 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.