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

映射

  • The MapRectangle::backend , MapCircle::backend , MapPolyline::backend ,和 MapPolygon::backend properties have been removed.
  • The former Routing-related QML element types Route , RouteSegment ,和 RouteManeuver are now value types route , routeSegment ,和 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 地圖 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 former QML element types PlaceUser , PlaceRatings , PlaceAttribute , PlaceIcon , PlaceSupplier ,和 PlaceContactDetail are now value types user , ratings , placeAttribute , icon , supplier ,和 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.