0

我有一个使用 osm 插件在 QML 地图上绘制 MapCircles 和 MapPolylines 的程序。该程序按预期工作,并且在使用连接到 Raspberry Pi 上的 DSI 连接器的 eglfs 显示器时绘制形状,但在 SPI 连接器上使用 linuxfb 显示器时不绘制形状。

其他一切工作正常,地图在两个设备上都正确显示,包括在地图上绘制的 MapQuickItems,但未绘制 MapPolylines 和 MapCircles。关于什么可能是错的任何想法?

在 eglfs 设备上,程序在没有任何参数的情况下启动。在 linuxfb 设备上,使用了以下参数:

/home/pi/bin/program -platform linuxfb:fb="/dev/fb1" -plugin tslib

这是 QML 代码:

Map {
(...)
    MapItemGroup {
        id: myposition
        property variant coordinate: QtPositioning.coordinate(45,-73)
        property color rangeCircleColor: 'darkslategray'
        property int rangeCircleWidth: 2

// This shape shows up properly on eglfs device but not the linuxfb device

        MapCircle {
            center: myposition.coordinate
            radius: 20*1852
            border.width: myposition.rangeCircleWidth
            border.color: myposition.rangeCircleColor
        }

// This MapQuickItem works well on both devices

        MapQuickItem {
            coordinate: myposition.coordinate
            anchorPoint.x: myPosItem.width/2
            anchorPoint.y: myPosItem.height/2

            sourceItem: Item {
                Rectangle {
                    id: myPosItem
                    width: 16
                    height: width
                    radius: width/2
                    border.color: 'black'
                    border.width: 2
                    color: 'blue'
                }
            }
        }
    }
}

}

4

1 回答 1

0

我想文档很清楚,地图组件需要 OpenGL 才能正常工作。至少地图插件和自定义地图快速项目运行良好,所以我将简单地将我的 MapCircle 替换为 MapQuickItem 中的 Rectangle 并在地图倾斜不为零时抑制其显示。

Map 对象使用 OpenGL (ES) 在屏幕上绘制地图,允许在可用的情况下进行硬件加速渲染。

于 2020-02-07T18:01:24.293 回答