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.
Enhancements
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.
Toolkit
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 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.
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
Route
Tracker Location Data Source - More consistent ordering of
IndoorsLocationDataSource
time stamps - Improvements to positional accuracy and floor level estimation
Arcade
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:
- New functions: StandardizeGuid and HasValue.
- A new profile for QuickCapture.
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 my
Fn(a,b,c,) {} - Function calls
my
Fn(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
andexport
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.cancel
(C++ and QML)Async - BookmarkListModel::bookmarkRemoved is removed. Use
Bookmark
instead (C++ Only)List Model ::item Removed - ClassBreakListModel::classBreakRemoved is removed. Use
Class
instead (C++ Only)Break List Model ::item Removed - PreplannedMapArea::contentItemsCompleted is removed. Access items in
Preplanned
(C++ Only)Map Area ::package Items - FieldDescriptionListModel.elementRemoved is removed. Use
Field
instead (QML Only)Description List Model.item Removed - 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
Graphic
s (as they already do forOverlay Feature
s)Layer - If a
Label
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 theDefinition. Angle Label
that produces the text.Definition. Expression
- 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.
Deprecations
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:
JSO
.N parser invalid start of JSO N. < : 0
Changes in samples
Enhancements
- 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
Q
class for offline data storage.Standard Paths - 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()
withJob.cancel
.Async() - Samples now make use of the
Q
class exposed through ArcGIS Extras library to determine the online state.Network Information
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.
Related topics
- System requirements for 200.0
- Install and set up
- Display a map (Tutorial)
- Product Life Cycle (Esri Support Site)