我有一个使用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。类?
请帮助我理解这一点。
答案 0 :(得分:2)
我认为你要找的是MapItemView
。
您的C ++代码将通过模型提供标记信息(位置,名称等),然后将其用作MapItemView
的输入。
然后,视图为模型中的每个条目创建一个地图视图项,并将其放在其父地图上。
有关示例,请参阅http://doc.qt.io/qt-5/location-places-qml.html#display-search-results-using-a-mapitemview。
您的C ++代码可以在运行时以其认为合适的方式修改模型,例如:添加或删除条目,修改条目数据。