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.
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.
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.
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.
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
GeodatabaseSyncTask, or with offline map areas.
In this release, you can use the
Utility 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.
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.
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.
- Better compatibility with
Tracker Location Data Source
- More consistent ordering of
- Improvements to positional accuracy and floor level estimation
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.
A trailing comma is now consistent with the online Arcade implementation. For example:
- Function definitions
- Function calls
y Fn(10, 11, 12,)
- Array literals
- Dictionary literals
"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.
- All API that was deprecated in 100.x has been removed in this release.
- In Arcade 1.20, the terms
exportare now keywords and are no longer available for use as variable or function names in an Arcade script.
- Job.cancel was removed. Use
Job.cancel(C++ and QML)
- BookmarkListModel::bookmarkRemoved is removed. Use
Bookmarkinstead (C++ Only)
List Model: :item Removed
- ClassBreakListModel::classBreakRemoved is removed. Use
Classinstead (C++ Only)
Break List Model: :item Removed
- PreplannedMapArea::contentItemsCompleted is removed. Access items in
M a p Area: :package Items
- FieldDescriptionListModel.elementRemoved is removed. Use
Fieldinstead (QML Only)
Description List Model.item Removed
- PopupAttachmentManager.attachmentsModelChanged is removed (QML Only)
- System.isOnline is removed and
System.reachabilityis added (ArcGIS Extras Only)
- Arcade expressions now support case insensitive lookup of attribute names for
Graphics (as they already do for
- If a
Labelexpression 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
Labelthat 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.
There are no API deprecations with this release.
There are no OS or framework deprecations with this release.
- Third Party library
libexpathas been upgraded to v2.5.0
- Third party library
zlibhas been upgraded to v1.2.13
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.
- 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
QStandardclass 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
- Samples now make use of the
QNetworkclass exposed through ArcGIS Extras library to determine the online state.
- 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.