This page provides details about enhancements in the 100.15 release of ArcGIS Runtime API for Qt. It also lists deprecations, resolved issues, and known issues.
100.15.6
Issues Resolved
-
BUG-000154793 The
clone
property for the feature layer does not clone the respectiveLabel
to a new feature layer object.Definitions -
BUG-000163776 Dictionary Renderer Expression scaling renders incorrectly in 3D. Reported via a question on Esri community.
-
BUG-000167293 Switching the map view back and forth causes the map view to be blank.
-
BUG-000167761 Switching between web maps before the layer loads causes the application to freeze.
-
BUG-000167816
Geodatabase
causesFeature Table. Load Aysnc Esri.
.ArcGIS Runtime. ArcGIS Runtime Exception : No Data -
out
query in requests causes delayed response while querying for features from ArcGIS Enterprise feature services.Statistics -
Possible race condition during
apply
and feature refresh.Edits -
Line labels are offset from and display beyond the line feature.
-
Failed attachment upload leads to silent failure in
Service
call.Geodatabase.apply Edits() -
Arcade Evaluator crashes when calling
Buffer
with single vertex geometry.Geodetic -
Text symbol offsets for labels don't display correctly on high-resolution screens.
- BUG-000155475 Switching a scene from one screen to a different screen crashes the ArcGIS Runtime SDK for Qt app.
100.15.5
Issues Resolved
- Upgrades HarfBuzz 3rd-party library to 8.3.0 to avoid a security vulnerability with versions 6.0.0 and earlier.
- Labeling performance improvement for multi-part line features.
- BUG-000152602 Identifying layers causes an unnecessary login prompt for public layers when used with an imagery basemap.
100.15.4
Issues Resolved
- BUG-000159531 Memory leaks when adding/removing layers from a map or scene.
- BUG-000160998 Significant reduction in performance if using a feature layer with more than 3000 polyline features and using the arrow marker style.
- BUG-000161071 After rotating, an ArcGIS Runtime application crashes intermittently when an offline map, containing several feature layers that have a
refresh
defined, is loaded.Interval - Potential crash when executing multiple attribute rules simultaneously.
- Arcade expressions that use a straight apostrophe (
'
) fail to evaluate. - WMTS layers fail to load on some maps due to duplicate parameters.
- Feature table fails to load if the feature service layer has a null extent.
- A map that contains a lot of data and heavily uses labels may crash when rendering the labels.
- Loading a locator task from an .mmpk may crash on certain devices.
100.15.3
Issues Resolved
-
BUG-000149324 Identifying a feature with a hidden field does not return popup.
-
BUG-000157495 Applying edits on a feature service fails to associate attachment to its feature when there is another layer in the service that does not have attachments enabled.
-
BUG-000158130 Updating
Subtype
does not update its value.Feature Layer. Scale Symbols -
BUG-000158132 Cloned
Subtype
does not retain values for theFeature Layer Scale
property.Symbols
-
If an Enterprise 11.1 feature service layer response erroneously excludes domain information, the app crashes without providing load errors or diagnostic information.
-
An app crashes when using a locator built with ArcGIS Pro 3.1 or later.
-
Attachments are not uploaded for ArcGIS Enterprise 10.9.1 hosted services with sync disabled.
-
A non-spatial table's
form
json is not set in theInfo unsupported
dictionary when saving it to a portal item.JSON -
Deleting a parent feature in a simple relationship may clear the attributes of its child feature while applying edits in a
Service
.Geodatabase -
Political boundaries are not displayed when a basemap is added to a scene view.
-
Upgrade Libtiff 4.5.1 to resolve some exposed security vulnerabilities.
-
Layers in web maps experience token errors after 30 minutes.
-
Enums.
andLayer Type Subtype Feature Layer Enums.
are missing from QML API.Layer Type Dimension Layer
100.15.2
Issues Resolved
-
BUG-000157449 Application crashes intermittently when an offline map including a basemap and 10 operational feature layers with
refresh
is loaded.Interval -
BUG-000148794 Several features fail to render despite zooming in and panning when
feature
isRequest Mode on
andInteraction Cache tiling
is disabled.Mode -
BUG-000155484
Subtype
pointing to service with labeling info fails to load.Feature Layer -
BUG-000153386 Reference scale not honored for some symbols in a
Subtype
.Feature Layer -
BUG-000156196
Picture
causes a memory leak when a new instance is created outside of the map view.Marker Symbol -
BUG-000157983 Reduce CPU usage when
Scene
idles.View -
Using service-level
apply
fails to delete features in some cases.Edits() -
System tables in a service are not correctly identified.
-
System table edits are not sent with calls to
Service
.Geodatabase.apply Edits Async() -
Magnifier image is distorted after
Map
is resized.View -
PopUp elements fail to create from returned Arcade dictionary.
-
Upgrade Protobuf 3rd-party library to 3.21.12 to avoid security vulnerabilities.
-
Mobile only: Internal sensor reading conversion error for magnetometer (used with indoor positioning).
-
The default value for
O
is not documented.Auth Client Info.refresh Token Exchange Interval -
App crashes when using a web map that contains a tracking feature layer that is not shared with the signed-in user.
100.15.1
Issues Resolved
-
BUG-000119969 Process memory leaks when adding and removing feature collection layers frequently.
-
BUG-000150574 Marker symbol rotation in feature collection not honored from webmaps.
-
BUG-000151826 Arcade expression shows inconsistent behavior in case sensitivity when Simple renderer and Dictionary renderer is used.
-
BUG-000152564 createTableAsync method of geodatabase ignores the vertical coordinate system of the table description.
- BUG-000152913 Data (mmpk, tpk, etc.) cannot be opened in Runtime SDKs from external hard drives.
- BUG-000153347 Crash while solving offline routes on features with self-intersecting geometry in Android.
-
The results of Arcade expressions are incorrectly cached between features in Media popup elements.
-
Distinguish between null being returned from an immediate calculation attribute rule and an empty return value.
-
Updating LabelDef.Symbol.Color after changing LabelDefinition does not work on specific layers.
-
Map does not refresh after setting a feature layer's definition expression to "field_name is null" when tiling mode is disabled.
-
Projecting curved feature geometry from Web Mercator to WGS 84 causes a crash.
-
Location updates for floor-aware geotriggers do not work with all integer types used to represent floor information.
-
Updated
Route
to support asynchronous start and stop methods to be consistent with those used byTracker Location Data Source Indoors
.Location Data Source -
Modified the timestamp calculation used by the Kalman filter in the positioning estimation of
Indoors
, improving its accuracy.Location Data Source -
Fixed a buffer underflow bug in the floor estimator that caused occasional crashes in
Indoors
.Location Data Source -
Unable to delete features from hosted feature layers that do not have GlobalIDs.
-
Contingent values validation logic doesn't match ArcGIS Pro if there are no contingencies defined for the current subtype.
-
A
Utility
created with a URL not matching the case 'FeatureServer' fails to trace, get associations with extent, and query trace configs.Network -
A direction maneuver is sometimes missing from the results when a route traverses a feature with a self-intersecting geometry.
-
Upgraded zlib library to 1.2.13 to address security vulnerability. Also upgraded zlib to 1.2.13 in ArcGIS Extras QML Plugin.
-
Upgraded Libtiff from 4.4.0 to 4.5.0 to address security vulnerabilities.
-
Upgrade sqlite to version 3.39.2 to address vulnerability.
-
Multithreaded feature table queries can crash or return null features in the query result.
-
Job.cancel is deprecated in favor of Job.cancelAsync.
-
Portal group queries fail if the removed 'query' string in the /search response is used.
100.15
Enhancements
Labels
Line labeling improvements
At this release, labels on line features are kept in the visible extent when possible. This behavior is automatic (no additional API calls are required) unless repetition is being used along the line. If repetition is used then it is assumed that the author is deliberately controlling the approximate frequency of labels on the map in order to avoid clutter.
Line labels will also make more small local movements to avoid obstacle features or other labels. This applies to labels that use repetition and those that don't. For labels with repetition, this may affect the distance between repetitions.
Symbols
Support for text symbol flip angle
ArcGIS Runtime now honors flip angle on a CIMTextSymbol. The flip angle property defines the angle at which rotated text is flipped (mirrored) in place. The property gets applied dynamically at rendering time and is not exposed via a public API. Angle is calculated in degrees from vertical. There are four different ways rotation can be applied to a symbol: map rotation, symbol rotation, geometry rotation, and marker rotation (defined on the respective symbol layer). Flip angle is not honored in 3D or if the text symbol's angle property is greater than 0.
Utility Network
Prevent subnetwork controller deletion
The utility network allows designating specific features as subnetwork controllers. Subnetwork controller features serve as network sources or sinks and form the starting points of a subnetwork. After a device or junction object has been assigned as a subnetwork controller, the feature cannot be deleted. Beginning with version 100.15, when attempting to delete a feature that is a subnetwork controller, ArcGIS Runtime will prevent its deletion.
Geotriggers
Geotriggers are now floor-aware
Geotriggers that use floor-aware feature data can now make use of the level information provided by a floor-aware
LocationDataSource
(such as the
IndoorsLocationDataSource
) to limit notifications to fences on the correct floor. For example, notifications will only be sent when you enter/exit a fence based on a feature that is on the same floor as your current
Location
. If the location does not include floor information then the floor attribute of a fence is ignored.
Indoor positioning
Support for large positioning files
In previous releases, the
IndoorsLocationDataSource
did not always work effectively on all platforms when using large positioning files (30 MB or more). With release 100.15, the indoor location data source can use positioning files up to 300 MB.
Improved indoor position accuracy
This release includes several improvements to indoor positioning system (IPS) accuracy.
- Indoor positioning output that does not use path snapping is now more stable. The display presents fewer horizontal/sideways jumps and drifts and follows the user's actual position more precisely.
- Positioning accuracy has been improved when the location data source switches between GNSS and IPS.
- Floor level estimation is now more accurate.
Improved output
-
IndoorsLocationDataSource
will no longer send warnings that are not relevant to the diagnosis of indoor location data source issues. - The timestamps for indoor location data source positioning output are now correct for estimated positions.
IndoorsLocationDataSource
will no longer output the last known position when a position cannot be estimated.
Arcade
Arcade improvements
At this release, ArcGIS Runtime supports Arcade 1.19, which has the following enhancements.
- Support for
while
loops like the one shown below.
var count = 1
while (count < 10){
count *= 2
}
count
- Simplified
Dictionary
construction where the name of an entry is the same as the variable containing the value.
var hello = "Hello"
var name = "Arcade"
{hello, name} // Equivalent to {"hello":hello, "name":name}
- A new
Convex
function added to the set of geometry functions.Hull - The
Feature
constructor can now accept a dictionary.Set
For more information, see the Arcade documentation.
Enhanced support for attribute rules
ArcGIS Runtime 100.15 adds support for the following Arcade data functions for use with attribute rules:
-
Get
returns metadata for the original source database and service (if applicable) of a feature set. This function was added in Arcade version 1.18.Feature Set Info() -
Next
returns the next sequence value from the database sequence specified. This function executes locally when called from attribute rules running in stand-alone mobile geodatabases.Sequence Value()
Toolkit
Bookmark View Toolkit Component
Bookmarks are spatial locations that are saved in a map for easy navigation. The Bookmark Tool allows you to see the list of saved bookmarks in a map, and upon mouse click or tap, will navigate your map view to the corresponding location.
Platform
QML Deprecation System
The QML language does not have a built-in system to notify developers of deprecated API usage in their apps. Instead, developers must check the "Obsolete members" section of the API reference to ensure they are not using deprecated APIs. To help notify developers of deprecated API usage in their apps, version 100.15.0 adds a new ArcGIS
property, which will log warnings to the console when deprecated APIs are used. Developers can use this information and cross-reference with the API reference documentation to migrate their app code to the newer patterns. Because QML is an interpreted language, the warnings are run-time checks and not compile-time checks, which means you will only see the logging happen as you run the app.
Ubuntu 22.04 LTS
100.15.0 adds support for the newest LTS release of Ubuntu - 22.04.
Projection engine updates
The following changes have been made to coordinate systems, map projections, and geographic transformations:
-
Several planetary satellites and extraterrestrial bodies had updated definitions added based on the IAU/IAG 2015 publication. Projected coordinate systems for Mars and the moon were also added.
-
The Luxembourg 1930 name was updated to LUREF which affected geographic and projected coordinate systems and several transformations.
-
Several edits were made to geographic transformations:
- The name of MGI_1901_To_WGS_1984_12, 8688, was updated to MGI_1901_To_WGS_1984_16.
- The rotation values were fixed in 9383, KSA-GRF17_To_WGS_1984_1, and 9472, DGN95_to_SRGI2013_1.
- The transformation method was fixed in 1825, Hong_Kong_1980_To_WGS_1984_1.
- The WKIDs and transformation methods were updated for CR05_to_CR-SIRGAS_1 and CR05_To_WGS_1984_2.
- A rotation value was fixed in 8827, Camacupa_2015_To_RSAO13_1.
-
Many years ago, the EPSG registry (https://epsg.org) deleted entries that had problems. They added corrected entries with new well-known IDs (WKID). This included a large group of geographic transformations where the ‘old’ WKIDs were in the 8xxx range. Esri kept the previous WKIDs in case someone was using them, but ‘code-changed’ the objects to use the official WKIDs. EPSG has started reusing the 8xxx numbers, although only a few objects so far have been affected. The code-change entries that used 8xxx (and which no longer exist in the EPSG registry) were removed at this release. This allows us to use the 8xxx values for new EPSG entries. Five GDA2020 transformations were affected and had been given Esri WKID numbers (108xxx). They now have code-change entries to their official EPSG WKID numbers. These are:
- GDA_1994_To_GDA2020_1, 108060 to 8048
- GDA_1994_To_GDA2020_NTv2_2_Conformal_and_Distortion, 108447 to 8447
- GDA_1994_To_GDA2020_NTv2_3_Conformal, 108446 to 8446
- GDA_1994_To_GDA2020_NTv2_4_Christmas, 108444 to 8444
- GDA_1994_To_GDA2020_NTv2_5_Cocos_Keeling, 108445 to 8445
-
Several new vertical transformations based on geoids, quasi-geoids, or other conversion grids are available. You can use them to transform to or between gravity-related vertical coordinate systems for the following areas: Belgium, Estonia (geoid file distributed by AlphaGIS, Estonian distributor), Italy (EVRF 2019), Latvia, Lithuania, Switzerland, Tasmania (Australia), Ukraine (EVRF 2019), and United Kingdom (HS2-VRF).
-
Projection mathematics for the Hotine oblique Mercator projection and the Rectified skew orthomorphic projection have been modified to fix an issue with ±90° azimuth cases. This is expected to cause about 4 cm offset in the center of the Swiss projected coordinate systems (affected WKIDs are: 2056, 21780, 21781 and 21782). The projection algorithm has been added as a new variant to the Hotine oblique Mercator projection.
Support for iOS 16
Shortly after iOS 16 was announced during Apple's WWDC conference in June 2022, testing began on the developer and public betas to ensure apps built with ArcGIS Runtime could adopt it quickly. Following the official release of iOS 16 on September 12, 2022, ArcGIS Runtime 100.15 was certified to support iOS 16.
Local Server
ArcGIS Runtime Local Server SDK 100.15 is an incremental compatibility release that provides support for geoprocessing and map packages created with ArcGIS Pro 2.9.x. This release supports the ArcGIS toolbox format (.atbx file extension), which represents the next generation of geoprocessing toolbox, tool, script, and model storage. Using ArcGIS Pro, you can create toolsets, add new model and script tools, change properties, and copy tools from legacy toolboxes (.tbx file) into the new toolbox format. For more information see Create a toolbox.
Breaking API changes
There are no breaking changes with this release.
Behavior changes
- Layers imported from ArcGIS Pro 3.0 that specify labels be offset to the
Left
or theRight
of a line feature (following its digitization direction), will now have that positioning respected rather than defaulting toAbove
andBelow
the line feature on the screen. - Horizontal labels offset from a line feature are now positioned so that their closest point is at the expected offset from the line feature. This was not previously correct in all cases, especially when the map was rotated.
- Labels are no longer lost when elevation changes.
- The SDK installation now contains a patch version to better accommodate patch fixes (for example, 100.15.0). This means that when upgrading apps from 100.14 to 100.15.0, you must include the patch version in your project files.
Deprecations
API deprecations
-
List model
added
andremoved
signals have been genericized to make a more consistent and predictable API. For example,Layer
is deprecated and the replacement is LayerListModel::itemAdded.List Model.layer Added -
Network
properties and synchronous setters have been deprecated. Asynchronous methods and notifier signals have been added as a replacement.Cache Configuration -
QML Only - The
Export
property and associated signal is deprecated. Instead, capture the job when it is created and, optionally, store for future use.Tile Cache Task ::export Tile Cache Jobs -
QML Only - The
Export
property and associated signal is deprecated. Instead, capture the job when it is created and, optionally, store for future use.Tile Cache Task ::estimate Tile Cache Size Jobs -
QML Only - The
Export
property and associated signal is deprecated. Instead, capture the job when it is created and, optionally, store for future use.Vector Tiles Task ::export Vector Tiles Jobs -
QML Only - The
Geodatabase
property and associated signal is deprecated. Instead, capture the job when it is created and, optionally, store for future use.Sync Task ::sync Geodatabase Jobs -
QML Only - The
Geodatabase
property and associated signal is deprecated. Instead, capture the job when it is created and, optionally, store for future use.Sync Task ::generate Geodatabase Jobs -
QML Only - List model "changed" signals are deprecated throughout the API. For example,
Locator
is deprecated (the signal is misleading and will not emit as the name implies). In this case, you should hook into the signals of the actual list model, such as SuggestListModel.suggestCompleted, SuggestListModel.suggestCompleted, to know when there are new suggestions.Task.suggestions Changed
OS and framework deprecations
-
Support for Windows 8.1 is deprecated. The last release to support Windows 8.1 is version 100.15. For more information see Windows 8.1 product lifecycle in the Microsoft documentation.
-
Support for Windows Server 2012, 2012 R2, and 2016 is deprecated. The last release to support Windows Server 2012, 2012 R2, and 2016 is version 100.15. A minimum of Windows Server 2019 will be required at the next release. For more information see Windows Server 2012 lifecycle, Windows Server 2012 R2 lifecycle, and Windows Server 2016 lifecycle in the Microsoft documentation.
-
Support for Red Hat Enterprise Linux 7 (RHEL7) is deprecated. The last release to support Red Hat Enterprise Linux 7 (RHEL7) is version 100.15. A minimum of Red Hat Enterprise Linux 8 (RHEL8) will be required at the next release.
-
Support for Ubuntu 18 is deprecated. The last release to support Ubuntu 18 is version 100.15. A minimum of Ubuntu 20 will be required at the next release.
- Support for Android versions 6.0 Marshmallow (API level 23), 7.0, Nougat (API level 24), and 7.1 Nougat (API level 25), is deprecated. The last release to support these versions is version 100.15. A minimum of Android 8.0 Oreo (API level 26) will be required at the next release.
-
Support for the Qt 5 framework is deprecated. The last release to support development with the Qt 5 framework is version 100.15. A minimum of Qt 6 will be required at the next release. Note that Qt 6 no longer includes ANGLE, a third-party OpenGL ES to Direct 3D translator, on Windows.
-
Support for Windows 32-bit is deprecated. The last release to support Windows 32-bit is version 100.15. Windows 64-bit will be required at the next release.
To learn more about the future of ArcGIS Runtime SDK for Qt, see ArcGIS Runtime in 2022 and beyond blog.
Issues resolved
Issues addressed in this release are listed below.
- Question on Esri Community WMTS layer fails to load with "Invalid argument: tile info origin must have a spatial reference"
- Question on Esri Community Changing Opacity of a Surface without Basemap doesn't update on screen
- BUG-000134159: Ordering fields by
Order
in a mobile map package (.mmpk) with 40,000 features fails with an error.By Fields. Add(order By1) - BUG-000148570: The 2D MapView flickers when displaying the mobile map package data using
Feature
orRendering Mode. Dynamic Feature
.Rendering Mode. Automatic - BUG-000149335: The zoom and pan tools built in ArcGIS Runtime SDK 100.14 result in white tiles.
- BUG-000149425: Mobile geodatabase is returning a "No Data" error even though there is data in the mobile geodatabase.
- BUG-000149646: Geotriggers do not create fences for all features from a paged Service Feature Table.
- BUG-000149978: Add/update/delete feature operations that trigger attribute rules whose Arcade expression uses the Domain function will fail to evaluate in Runtime with an "Arcade expression is invalid" error message.
Known issues
There are no known issues or limitations for this release.
Changes in samples
New samples
- Apply unique values with alternate symbols
- Query features with Arcade expression
- Create mobile geodatabase
- Export vector tiles
- Set max extent
- Show device location using indoor positioning
Enhancements
- Added Google Analytics telemetry to the sample viewer.
- Updated deprecated code from C++ and QML samples.
- Updated CQL JSON queries in Query OGC API with CQL filters to use the latest CQL2-JSON format.
- Renamed Generate geodatabase -> Generate geodatabase replica from feature service to better differentiate geodatabase samples.
Bug fixes
- Fixed a bug in Nearest Vertex where results were being returned in incorrect, planar distances.
- Fixed a text rendering bug appearing on Macs with M1 chips.
- Removed deprecated code so that samples build without warnings.
Related topics
- System requirements
- Install and set up
- Display a map (Tutorial)
- Product Life Cycle (Esri Support Site)