MapQuickItem用于将标准QQuickItems添加到地图。虽然MapCircle是一个QQuickItem,但它不是应该放在那里的东西。
如果要通过MapQuickItem将圆添加到地图中,则应添加一个矩形作为源项,并具有适当的半径。
以下两种方法都有效
var item = Qt.createQmlObject('import QtQuick 2.7; import QtLocation 5.3; MapQuickItem{}', map, "dynamic");
item.anchorPoint = Qt.point(2.5,2.5)
item.coordinate = QtPositioning.coordinate(lat, lng);
item.zoomLevel = 10
var circle = Qt.createQmlObject('import QtQuick 2.7; Rectangle{ width: 32; height: 32; radius: 16}', map);
item.sourceItem = circle
map.addMapItem(item);
var item = Qt.createQmlObject('import QtQuick 2.7; import QtLocation 5.3; MapQuickItem{ sourceItem: Rectangle{ width: 32; height: 32; radius: 16}}', map, "dynamic");
item.anchorPoint = Qt.point(2.5,2.5)
item.coordinate = QtPositioning.coordinate(lat, lng);
item.zoomLevel = 10
map.addMapItem(item);
请记住,矩形大小表示像素大小。将zoomLevel设置为MapQuickItem时,它将变为
.
这意味着在缩放级别10时,矩形将为32像素宽。在缩放级别9时,它将为16,以此类推。
类似于:
item.visible: map.zoomLevel > 10