Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-96795

QtLocation maps to Qt 6.2

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Sprint:
      Team 1 Foundation_Sprint 44

      Description

      I have started to port QtLocation maps to Qt 6.2 and this issue is to track and collect all the relevant information.

      Current status:

      • All classes are included into CMake build and modified for Qt 6.
      • OpenGL backend code of MapPolyline, MapPolygn, MapcCircle and MapRectangle (including labs project) is ported to new abstract graphics API.
      • MapboxGL plugin is re-introdced as MaplibreGL plugin. It compiles on MSVC, Android and iOS but is pointed to a fork of maplibre repository because it needs changes to be merged into the main repo.

      Bigger modifications:

      • Mouse and touch input part is re-written to support new 'exclusiveGrabber' and to be able to share different touch point between different child items. For example, one finger can pan the map and another finger can scroll child ListView.

      Known issues:

      • Map tiles are not visible during flick animation. But they are when performing 'center' property CoordinateAnimation on the QML side. No idea, what's the cause. Flick movement is basically the same, only on the C++ side. Fixed with https://codereview.qt-project.org/c/qt/qtlocation/+/373996
      • MapPolyline extruded version has scrambled miter joints when route/polyline contains equal coordinates twice in the path, next to each other. Seems that routes can have this, when it contains multiple route segments or something. But, the same behaviour is in Qt 5.
      • WIP: "mapboxgl" plugin has been switched to Maplibre. I compiles and works. TODO: rename everything an re-introduce it a "maplibregl" plugin.
      • Tests are not included. https://codereview.qt-project.org/c/qt/qtlocation/+/380646/8
      • Examples are not yet ported/included.
      • Gestures: when panning the map with one finger to an offset and then placing a second finger on the map, then map jumps in a panned distance.
      • Gestures: holding down one finger until long press is triggered, placing second finger on the map and releasing the first one, causes zoom gesture when moving the second (the only one left) - as if the first finger is still down.
      • There seems to be a change either in Qt 6.3 or in iOS where shaders don't have enouch precision. Moving GL objects (polyline, etc) are jumping when panning with bigger zoom levels. Even if split double is used. This "jumping" goes away when using: QQuickWindow::setGraphicsApi(QSGRendererInterface::OpenGLRhi);. It happens only on iOS (perhaps Mac as well) and default RHI (Metal, I guess). Android and Windows are smooth.

       

        Attachments

          Issue Links

          For Gerrit Dashboard: QTBUG-96795
          # Subject Branch Project Status CR V

            Activity

              People

              Assignee:
              andreasbuhr Andreas Buhr
              Reporter:
              kiibimees Lauri Laanmets
              PM Owner:
              Vladimir Minenko Vladimir Minenko
              RnD Owner:
              Alex Blasche Alex Blasche
              Votes:
              30 Vote for this issue
              Watchers:
              49 Start watching this issue

                Dates

                Created:
                Updated:

                  Gerrit Reviews

                  There are 6 open Gerrit changes