Release notes for 200.0

This page provides details about enhancements in the 200.0 release of ArcGIS Maps SDK for Qt. It also lists deprecations, resolved issues, known issues, and more.


ArcGIS Maps SDK for Qt

Qt 6 Support

Qt 6 is the latest major version of the Qt framework, which brings in support for newer compilers, platforms, rendering APIs, language features, and more. This release of ArcGIS Maps SDK for Qt is the first release to support Qt 6. See the System requirements and Migration guide topics for more information on upgrading your app.

macOS ARM support

Apple Mac systems have transitioned from using Intel to Apple CPUs. The new Mac systems (often referred to as M1 and M2 Macs) now use ARM architecture instead of x86_64. While apps built for x86_64 will continue to run on ARM via Rosetta translation, the optimal solution is to support the two different architectures. This release of ArcGIS Maps SDK for Qt supports both architectures via universal libraries.

CMake support in project templates

Qt 6 officially embraces CMake as the primary build system of Qt. CMake is now supported on all platforms and is the default build system when creating a new ArcGIS Maps SDK for Qt project.


A new Utility network trace control has been added to the ArcGIS Maps SDK for Qt Toolkit for version 200.0. This control streamlines utility network trace workflows by allowing the user to select a starting point and trace configuration.

Scenes (3D)

Edge rendering

Visualization of edges is now supported for 3D Object Scene Layers, which are typically used to represent buildings in your 3D scenes. Edge rendering helps you create stunning scenes with more detail and improves user depth perception. With this release, the Solid edge style is supported to accentuate and stylize the visually important edges, including substructures, exterior walls, balconies, and roofs. Edges of type Solid are rendered in a single color and are unaffected by scene lighting. Edge rendering is supported in apps built with ArcGIS Maps SDKs for Native Apps running on Android, Linux, macOS, or Windows. Support for this feature on iOS is planned for a future release. The Sketch edge style, resembling hand-drawn sketched lines, is not currently supported and will be rendered as solid edges.

Utility networks

Run utility network traces offline

ArcGIS Maps SDKs for Native Apps can now run utility network traces (connected, subnetwork, upstream, and downstream) in a fully disconnected environment. You can create and fine-tune trace configuration options, or leverage named trace configurations to support even more complex traces while offline. The trace result types supported with offline utility networks are elements and functions. Offline tracing requires a mobile geodatabase with full utility network topology. These can be created using ArcGIS Pro as a standalone mobile geodatabase. In the future you will be able to create sync-enabled mobile geodatabases containing utility network topology using the OfflineMapTask or GeodatabaseSyncTask, or with offline map areas.

In this release, you can use the UtilityNetworkDefinition.capabilities to determine which utility network operations are available with your data. For example, a sync-enabled mobile geodatabase created with ArcGIS Enterprise 10.9 containing utility networks supports querying associations but not tracing. However, a standalone mobile geodatabase exported with ArcGIS Pro 2.9 or later that includes a full utility network supports both querying associations and tracing.

Labels and annotation

Vertical text can display upright CJKV characters

Annotation features and labels displayed using ArcGIS Maps SDKs for Native apps can now have their character glyphs rotated in place to appear vertically. This is primarily intended for Asian text (including Chinese, Japanese, Korean, and Vietnamese). It requires that the annotation be published from ArcGIS Pro with the text symbol's block progression property set to right to left, and that the layout of the overall text is closer to vertical than horizontal. See Text symbol properties in the ArcGIS Pro documentation for more information.

Indoor positioning

Positions are restricted to the surveyed area

In previous releases, indoor positions were interpolated for areas outside of the Indoor Positioning System (IPS) survey. Positions are now only shown for areas that have been surveyed.

Quality improvements

  • Better compatibility with RouteTrackerLocationDataSource
  • More consistent ordering of IndoorsLocationDataSource time stamps
  • Improvements to positional accuracy and floor level estimation


Support for Arcade 1.20

ArcGIS Maps SDKs for Native Apps now support Arcade 1.20. For more details, see the Arcade 1.20 release notes. Some enhancements include:

Note that the enhancement to the GetUser function to accept zero arguments always returns null, since ArcGIS Maps SDKs for Native Apps do not have the concept of an active portal.

Improved consistency with the online implementation

A trailing comma is now consistent with the online Arcade implementation. For example:

  • Function definitions function myFn(a,b,c,) {}
  • Function calls myFn(10, 11, 12,)
  • Array literals [1,2,3,]
  • Dictionary literals { hello:"world", good:"night", }

The checker that determines where function definitions are allowed has been improved. These checks are now consistent with the online implementation and prevent edge cases that could cause confusion around scoping rules. Function definitions within while statements, inside other function definitions, and codeblocks of if statements are not allowed.

Breaking API changes

  • All API that was deprecated in 100.x has been removed in this release.
  • In Arcade 1.20, the terms import and export are now keywords and are no longer available for use as variable or function names in an Arcade script.
  • Job.cancel was removed. Use Job.cancelAsync (C++ and QML)
  • BookmarkListModel::bookmarkRemoved is removed. Use BookmarkListModel::itemRemoved instead (C++ Only)
  • ClassBreakListModel::classBreakRemoved is removed. Use ClassBreakListModel::itemRemoved instead (C++ Only)
  • PreplannedMapArea::contentItemsCompleted is removed. Access items in PreplannedMapArea::packageItems (C++ Only)
  • FieldDescriptionListModel.elementRemoved is removed. Use FieldDescriptionListModel.itemRemoved instead (QML Only)
  • PopupAttachmentManager.attachmentsModelChanged is removed (QML Only)
  • System.isOnline is removed and System.reachability is added (ArcGIS Extras Only)

Behavior changes

  • Arcade expressions now support case insensitive lookup of attribute names for GraphicOverlays (as they already do for FeatureLayers)
  • If a LabelDefinition.Angle expression attempts to use an attribute that does not exist, then no label will be produced (rather than assuming an angle of 0). This behavior is consistent with the LabelDefinition.Expression that produces the text.
  • C++ API headers are now standardized to use forward declarations throughout the API, to improve build times and follow C++ best practices. This change will require developers to update apps to include the types they are using in their apps.
  • All enums are now registered using Q_DECLARE_METATYPE.
  • Base-class copy constructors are now marked as explicit. This primarily affects geometry types. See the Migration Guide for more details.
  • TravelMode is no longer a QObject.
  • Single argument value object constructors are now marked as explicit.
  • Signal arguments have been standardized to be const-ref throughout.
  • The following classes are no longer inadvertently declared as metatypes: FeatureEditResult, FeatureTableEditResult, GenerateOfflineMapParameterOverrides, GeoElement, Graphic, IdentifyGraphicsOverlayResult, IdentifyLayerResult, RelatedFeatureQueryResult.


API deprecations

There are no API deprecations with this release.

OS and framework deprecations

There are no OS or framework deprecations with this release.

Issues resolved

  • Third Party library libexpat has been upgraded to v2.5.0
  • Third party library zlib has been upgraded to v1.2.13

Known issues

  • BUG-000154697: Building Android errors with Qt 6.4. Due to an ABI breaking change in Qt, apps cannot be built for Android with Qt 6.4. The fix is in Qt and is scheduled for 6.4.3 and 6.5.

  • BUG-000154698: QML app linker errors on iOS with Qt 6.4. Due to an ABI breaking change in Qt, QML apps cannot be built for iOS with Qt 6.4. The fix is in Qt and is scheduled for 6.4.2 and 6.5.

  • BUG-000154742: Loading the landscape image service results in a parsing error: JSON parser invalid start of JSON. < : 0.

Changes in samples


  • Updated all samples to use Qt 6.
  • Updated all samples to use C++17.
  • Removed version numbers from QML files.
  • Android samples now store offline data in scoped app storage.
  • QML samples now use the ArcGIS Extras library to access the QStandardPaths class for offline data storage.
  • Explicitly pass variables into async slots in QML files.
  • Create and save KML file now saves to a temporary location.
  • WebEngineQuick is no longer optional for samples that require it.
  • Replaced deprecated uses of Job.cancel() with Job.cancelAsync().
  • Samples now make use of the QNetworkInformation class exposed through ArcGIS Extras library to determine the online state.

Bug Fixes

  • Removed or replaced deprecated QML modules.
  • Fixed a bug where Add items to portal would get stuck on the load step if the sample item was already found in the Portal.
  • Replaced a discontinued elevation source in some scene samples.
  • Fixed a bug where multiple fields could be added to the "Statistical Query (Group Sort)" query and result in an error.
  • Resolved a double-delete warning produced when closing QML Offline Map Overrides.
  • Changed the initialization order of classes in main.cpp files to resolve deprecation warnings.
  • Fixed a bug where QML Display Layer View Draw State would not properly show the draw state.
  • Updated the metadata of the screenshot used for Group Layers to resolve invalid chromaticities warning.
  • Resolved a "non-NOTIFYable property" warning when accessing a layer's name property in QML.
  • Updated discontinued data used in WMTS Layer.
  • Resolved a UI bug where labels would not appear on the controls for Animate 3D Symbols.
  • Resolved multiple instances where properties of undefined components were being referenced.
  • Fixed a bug with Identify KML Features where text would continue out of the popup.
  • Fixed a bug where selected features would not deselect after moving them in QML Edit and Sync Features.
  • Fixed a bug where Browse OGC API Feature Service would crash when attempting to load a layer from an empty list model.
  • Replaced missing tent symbol in Picture Marker Symbol.
  • Fixed a bug where QML Search Dictionary Symbol Style would crash when retrieving symbolUrl.
  • Resolved "null width" warnings in multiple samples.

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