小编Mik*_*kie的帖子

QT QmlMap PolyLine 带点

我有一个嵌入在小部件应用程序中的 QML 地图。我使用 MapQuickItem 为我在 MAP 上跟踪的资产绘制标记。此外,我绘制了一条前一轨迹点的历史线。由于操作员可以添加和删除项目,我喜欢将地图项目和历史记录作为组包含,以便我可以轻松删除与资产相关的地图项目。

我是 QML 和扩展 JS 的新手,所以通过反复试验完成了我的学习。

我想做的是在折线的每个点上添加一个标记(除了作为实际资产标记的最后一个点)。每个点上的标记也是一个图像(可能是小箭头)。我也想根据移动方向旋转这个箭头。

所以我有我的 Main.qml 文件来绘制地图等。然后我有 MapMarker.Qml 来绘制实际资产的标记。目前图像是硬编码的。然后我有一个 AssetTrails.qml 文件,目前它只是一个 Polyline 组件。我希望我可以将点标记添加到这条线索,因为这样在删除时删除所有项目会很容易。

有人可以向我解释如何解决这个问题吗?这可能吗?

我附上我的 QML 片段以供参考。我意识到这不是很好的代码,但就像我说的,我通过反复试验学习。

Main.qml 函数

function addAsset(location, Name)
{
    // Load the map marker.
    var mapmarkercomp = Qt.createComponent("mapmarker.qml");
    assetMarkers.push(mapmarkercomp.createObject(
                          map, {"coordinate": QtPositioning.coordinate(location.latitude,
                                                                       location.longitude)}));

    if (mapLoadErrorHandler(assetMarkers[assetMarkers.length - 1]))
    {
        map.center = QtPositioning.coordinate(location.latitude,
                                              location.longitude);
        map.zoomLevel = 6;
        assetMarkers[assetMarkers.length - 1].name = Name;
        assetMarkers[assetMarkers.length - 1].followMe = true;
        assetMarkers[assetMarkers.length - 1].transparency = 0;
        map.addMapItem(assetMarkers[assetMarkers.length - 1]);
    }
}
function addAssetHistory(assetPath, …
Run Code Online (Sandbox Code Playgroud)

qt qml qt5

2
推荐指数
1
解决办法
2273
查看次数

标签 统计

qml ×1

qt ×1

qt5 ×1