Release notes for 200.7

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

Enhancements

Geometry editing

Snap geometry edits using utility network rules

The utility network includes a set of rules to determine what features can connect to one another. For example, you can connect a fuse to an electric power line, but not to a gas pipe. You can now configure the interactive snapping behavior of a GeometryEditor to account for these connectivity rules, helping you create true edits for utility network features that can be successfully validated.

You can now configure rule-based snapping by first creating SnapRules that are applicable to the utility network asset type of the feature you will edit. If you are editing existing features, create the snap rules by passing the UtilityAssetType to SnapRules::createAsync(UtilityNetwork, UtilityAssetType). If you are creating new features, pass the attributes of the new feature that includes the asset type to SnapRules::createAsync(UtilityNetwork, FeatureTable, Attributes). Next, call SnapSettings::syncSourceSettings() to synchronize the snap sources of the GeometryEditor to refer to these snap rules. Provide the SnapRules that you have created and specify the SnapSourceEnablingBehavior.

Snapping support for each sublayer of a subtype feature layer

When using GeometryEditor snapping and working with subtypes, you can now configure each SubtypeSublayer for snapping individually. Each SnapSourceSettings that corresponds to a SubtypeSublayer is now available from the SnapSourceSettings.childSourceSettings() collection of its parent SubtypeFeatureLayer snap source, and can be enabled or disabled independently of its parent layer.

Popups

User input location support for Popups

Arcade expressions in popups can now use Popup::userInput to access information about the map location that was used to show the popup. For more information, see popup profile in Arcade.

Override the popup definition for an individual feature in a feature collection

Popup definitions can now be defined for individual features in a feature collection, allowing map authors to customize what a popup looks like for an individual feature instead of using the same definition for all features in the collection. Use FeatureCollectionTable.setPopupDefinitionOverride() to override the feature collection popup definition for a specific feature. When an identify method returns popups, the identify result will automatically have the overridden PopupDefinition. You can also use FeatureTable::popupDefinition(feature) to return the overridden feature-specific PopupDefinition.

Support for user-configured popup chart colors

User-configured chart colors are now supported in popups. Use PopupMediaValue::chartColors() to access the collection of colors defined for a popup when rendering charts in popups. For more information, see custom colors in pop-up charts in ArcGIS Online.

New utility associations popup element

A UtilityAssociationsPopupElement is a new type of PopupElement that gives you complete control over which associations are displayed through the use of the new UtilityAssociationsFilter class. You can configure filters to only display associations of a particular type and role (such as content or connectivity), or that the feature on the other side of the association matches a particular network source, asset group, or asset type.

A PopupDefinition with a UtilityAssociationsPopupElement will be honored when included in a web map. You can also create or update a UtilityAssociationsPopupElement and save it in a web map. Note that the UtilityAssociationsPopupElement is not integrated into the "Popup" toolkit component at this time, but is a planned improvement.

New and improved toolkit PopupView

The ArcGIS Maps SDK for Qt Toolkit PopupView has been revamped to work with the PopupElement specification. A PopupElement offers many improvements over the older style Popup, which were primarily driven by fields. The new design supports a highly customizable display of information through use of Arcade, including text, images, fields, interactive charts and graphs, and attachments. A rich authoring environment in the Map Viewer gives you endless opportunities to fine tune your popups to display information in the best way suitable for your apps. To use the new element-based PopupViews, set the PopupView.popup property with your feature's Popup.

Display a Popup

Dynamic entities

Query dynamic entities

You can now query a DynamicEntityDataSource to find dynamic entities that meet spatial and/or attribute criteria. Because dynamic entities change over time, the query returns a collection of entities that match the DynamicEntityQueryParamaters at the moment the query is executed. Although the number of dynamic entities in the result set is fixed, you can monitor these entities and be notified when new observations are received. This is useful for scenarios such as: finding a flight with a particular ID, identifying all first responders in the same task team, or returning all emergency vehicles currently within a specified distance of a reported incident.

Layers and tables

Improved performance of feature layers in a scene

In this release, performance of feature layers in 3D has been improved for line and polygon geometries. The improvement is pronounced when the layer contains a significantly large number of vertices. This improvement can result in 3 to 5 times increase in draw times and a lower CPU usage.

Support for subtype group tables

Similar to SubtypeFeatureLayer, subtype group tables allow each FeatureSubtype in a non-spatial object class to have their own query methods, edit operations, popup definitions, and more.

If a web map contains a subtype group table, the ArcGISFeatureTable::subtypeSubtables collection will be populated with SubtypeSubtable objects when the web map is loaded. You can also create, configure, and add new SubtypeSubtable objects to this collection and save them in the web map.

Load a WMTS layer from a portal item

With this release, you can now load a WmtsLayer from a portal item.

MapView

Support for image overlays in map views

MapView now supports image overlays; previously only supported in scene views. You can use an ImageOverlay to quickly render frequently changing images such as realtime sensor data. For example, to display a dynamic weather system, each frame from the weather radar is represented as a static image. This image is constantly updated via a new ImageFrame as new data comes in to give a fast-refreshing display. This resolves the following enhancement request: ENH-000134745 Support for ImageOverlay class inside a 2D MapView.

Arcade

Support for new Arcade version

The SDK now supports Arcade 1.31.

The following functions have been added:

  • Geotrigger profile support for the Data Access bundle.
  • Different curve types support in geodetic geometry functions.

Indoor positioning

Adaptive radio positioning

Indoor positioning accuracy has been improved using enhanced algorithms in our indoor positioning system (IPS) engine. The indoor location data source (ILDS) now caches statistics on received radio signals and uses the cached data to deliver more accurate positions in subsequent sessions. In addition to this new feature, the behavior of the blue dot on Android phones has been improved. Due to poor quality built-in sensors, some Android phones struggle to provide the same level of positioning accuracy as phones with higher quality sensors. The new adaptive radio positioning algorithm will mitigate this by continuously adjusting the received radio signals so that our IPS engine can calculate more accurate indoor positions.

Stand still filter

The user experience when standing still has been improved. A new filter detects when the user stops walking and locks the blue dot. If the IPS engine receives more accurate positions during this stationary period, the position of the blue dot is slowly updated.

Improved startup

During the startup phase, the IndoorsLocationDataSource (ILDS) response has been improved when a sensor fails to start or when permissions are missing. When the ILDS is running, alert handling from sensors has been enhanced and the ILDS now presents appropriate warnings.

Projection Engine

Coordinate systems and transformations

  • Available coordinate systems and transformations have been updated to EPSG v12.002.
  • The names of EGM vertical coordinate systems have been revised to align with the official EPSG names.
  • EGM2008 geoid transformations in the behind-the-scenes processes have been updated to use the official NGA methods.
  • ArcGIS Coordinate Systems Data supplement component now includes new geographic transformation grids for Germany and the United Kingdom, as well as new vertical transformation models for Bonaire (Dutch Caribbean), European continent (EVRF systems), Finland, and Slovenia.

SDK enhancements

3D Basemaps

The Portal class now supports fetching 3D basemaps from ArcGIS Online or ArcGIS Enterprise using Portal::fetch3DBasemapsAsync().

In addition, the ArcGIS Maps SDK for Qt Toolkit's BasemapGallery component has been updated to fetch 3D basemaps when connected to a SceneView. 3D Basemaps will include an additional 3D badge overlaid on the basemap thumbnail, indicating it is a 3D basemap.

Use of std::optional

A new pattern in the API will begin to appear for cases where a function returns either a primitive type or an empty value. It uses C++'s std::optional class and has the advantage of clearly expressing whether the returned primitive is valid, which previously had to be represented by magic numbers, such as -1 for empty or error cases. This pattern is available in a limited capacity with this release, such as in std::optional<int> NmeaSatelliteInfo::snr(), but new APIs in future will continue to use this pattern.

Support for set click durations

Following an enhancement request in the Esri Community Forums, click durations set in the QGuiApplication's style hints are honored.

iOS XCFramework

iOS libraries are now shipped as XCFrameworks, which means that privacy manifests and dSYM files shipped with the Qt Maps SDK are now automatically bundled in apps and require no additional configuration in Xcode, streamlining the App Store submission process.

Support for Android devices configured with 16KB page sizes

ArcGIS Maps SDK for Qt now supports Android devices and emulators that are configured to use a memory page size of 16 KB.

Breaking API changes

There are no breaking API changes with this release.

Behavior changes

Deprecations

API deprecations

  • OpenGL ES support on iOS is now deprecated and will be removed in a future release. Metal is the default rendering API and apps should begin to migrate to Metal. To do this, ensure you are not opting into OpenGL, such as through environment variables or in code like this QQuickWindow::setGraphicsApi(QSGRendererInterface::GraphicsApi::OpenGL);
  • The ArcGIS Maps SDK for Qt Augmented Reality (AR) toolkit components and all related classes are deprecated and will be removed in a future release.
  • PopupManager and all related classes are deprecated and will be removed in a future release. You should use a PopupElement instead.
  • KmlTrack::elements() is deprecated and will be removed in a future release. Use KmlTrack::elements(QObject*) instead. The deprecated method will return unmanaged objects that will leak. The new replacement method makes this clear and affords the opportunity to provide a parent upfront.
  • ArcGISFeature::attachments(bool enableAutoFetch, bool enableAutoApplyEdits) is deprecated and will be removed in a future release. Auto-fetch and auto-apply patterns are only applicable to the TaskWatcher async system, which is now deprecated, in favor of QFuture.
  • ArcGISIncludeCompatibility.h is deprecated and will be removed in a future release. This header was provided as a helper to aid developers in migrating from 100.x to 200.x, where header includes in the Qt Maps SDK were reduced in favor of forward declares. This change followed best practices and decreased build times, but required app developers to make several code additional include statements to get their apps building. Going forward, developers should explicitly include the types they need in their apps, following include-what-you-use (IWYU) best practices.
  • ErrorType::CommonQtReserved enum is deprecated and will be removed in a future release. The replacement is a new enum MapsSDKInternal.

OS and framework deprecations

  • Support for iOS/iPadOS 16 is deprecated. The last release to support this version is 200.7. A minimum of iOS/iPadOS 17 will be required at the next release.

  • Support for macOS Ventura (version 13) is deprecated. The last release to support this version is 200.7. A minimum of macOS Sonoma (version 14) will be required at the next release.

Local server deprecations

ArcGIS Maps SDK for Local Server is deprecated. The last release of Local Server will be ArcGIS Maps SDK for Local Server 200.8. For more information, see the deprecation announcement.

Issues resolved

Issues addressed in this release are listed below.

  • BUG-000158647/BUG-000157410 - Layer with access key fails to load. This has been resolved by adding portal item support to WmtsLayer.
  • BUG-000174246 - After running for extended periods of time (24+ hours) an application using composite symbols to render graphics will lead to a runtimecore access violation error and crash the program.
  • BUG-000170373 - A custom display field displayFieldExpressionInfo is not honored in Native SDKs.
  • BUG-000173617 - When related records of a feature that has 0 related records in M:N relationship are queried in ArcGIS Map SDKs, an error is returned com.esri.arcgisruntime.ArcGISRuntimeException: Geodatabase item not found, instead of an empty list.
  • BUG-000174741 - The composite locator bundled in a mobile map package fails to load in the application.

Known issues

Known issues or limitations for this release are listed below.

  • ArcGISSceneLayer does not render on x86_64 Android emulators that have a memory page size of 16KB.

Changes in samples

There are no new samples with this release.

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