Changes to Qt Location

Qt 6 is a result of the conscious effort to make the framework more efficient and easy to use.

We try to maintain binary and source compatibility for all the public APIs in each release. But some changes were inevitable in an effort to make Qt a better framework.

In this topic we summarize those changes in Qt Location, and provide guidance to handle them.

Breaking public API changes

Maps

  • The MapRectangle::backend, MapCircle::backend, MapPolyline::backend, and MapPolygon::backend properties have been removed.
  • The former Routing-related QML element types Route, RouteSegment, and RouteManeuver are now value types route, routeSegment, and routeManeuver. They can no longer be instantiated as items in QML, and their properties can not be bound to.
  • The former Mapping-related QML element types MapType and CameraCapabilities are now value types mapType and cameraCapabilities. They can no longer be instantiated as items in QML, and their properties can not be bound to.
  • The QGeoRouteLeg class and the QML equivalent, RouteLeg, have been merged into QGeoRoute (and the route type). A route can be an aggregate of several routes.
  • The Map type provides now minimal functionality without handling of user intput. The MapGestureArea was removed. The MapView type handles basic user input such as tap and drag events.

Places

  • The QPlaceImage, QPlaceEditorial, and QPlaceReview classes have been folded into QPlaceContent.
  • The QPlaceContent API has been changed to give access to a list of QVariant values.
  • The former QML element types PlaceUser, PlaceRatings, PlaceAttribute, PlaceIcon, PlaceSupplier, and PlaceContactDetail are now value types user, ratings, placeAttribute, icon, supplier, and contactDetail. They can no longer be instantiated as items from QML, and their properties can not be bound to.

Experimental APIs

Functionality that had "labs" status has been removed. This includes the experimental framework for turn-by-turn navigation, as well as the MapObjects abstraction.

Backend Provider API

The backend provider API is no longer subject to binary and source compatibility guarantees.

Other API changes

This section contains API improvements that do not break source compatibility. However they might have an impact on the application logic, so it is still useful to know about them.