QML映射适当的标记实例化

时间:2016-12-10 19:45:27

标签: c++ qt dictionary qml openstreetmap

我有一个使用Map.qml(Window {... Map {...}})显示的地图(OpenStreetMaps) 我有一个Marker.qml文件(基于MapQuickItem)。一切正常,当我将这个标记静态放置到我的地图上时:Map {... Marker {params}}。

我想放置N个标记(当然,它们有coords和其他参数)。 somefile.txt中定义的标记参数,使用C ++解析此文件。

问题是如何正确/更快/正确地实例化解析点并将其放置到Map?我应该在Map.qml中使用addMarker(position,name){map.addMapItem(?)}吗? 或者我应该只使用C ++来放置这个标记,比如获取Map容器​​并在某些" map-projected"上调用addMapItem。类?

请帮助我理解这一点。

1 个答案:

答案 0 :(得分:2)

我认为你要找的是MapItemView

您的C ++代码将通过模型提供标记信息(位置,名称等),然后将其用作MapItemView的输入。 然后,视图为模型中的每个条目创建一个地图视图项,并将其放在其父地图上。

有关示例,请参阅http://doc.qt.io/qt-5/location-places-qml.html#display-search-results-using-a-mapitemview

您的C ++代码可以在运行时以其认为合适的方式修改模型,例如:添加或删除条目,修改条目数据。