我有一个嵌入在小部件应用程序中的 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)