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

QtLocation maps to Qt 6.2

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • P2: Important
    • 6.5
    • None
    • None

    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 and is pointed to the official MapLibre repository because all needed changes are merged to main in MapLibre.

      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. Fixed: https://codereview.qt-project.org/c/qt/qtlocation/+/412441
      • Gestures: holding down one finger until long press is triggered in child MouseArea, 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. Fixed: https://codereview.qt-project.org/c/qt/qtlocation/+/412446
      • 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

        1. image-2021-10-07-11-23-21-228.png
          image-2021-10-07-11-23-21-228.png
          426 kB
        2. image-2021-10-07-12-11-04-281.png
          image-2021-10-07-12-11-04-281.png
          102 kB
        3. image-2021-10-13-18-04-51-310.png
          image-2021-10-13-18-04-51-310.png
          89 kB
        4. maintanence_tool.png
          maintanence_tool.png
          347 kB
        5. screenshot-1.png
          screenshot-1.png
          44 kB
        6. MapItemViewTest.zip
          27 kB
        7. MapItemViewTest-1.zip
          27 kB
        8. ios-compile.txt
          8 kB
        9. image-2022-12-12-08-20-55-571.png
          image-2022-12-12-08-20-55-571.png
          2.33 MB

        Issue Links

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

          Activity

            People

              vhilshei Volker Hilsheimer
              kiibimees Lauri Laanmets
              Vladimir Minenko Vladimir Minenko
              Alex Blasche Alex Blasche
              Votes:
              44 Vote for this issue
              Watchers:
              65 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There is 1 open Gerrit change