У меня есть реализация qml Map
, добавив несколько MapQuickItems
.Теперь я хотел бы получить отдельные MapQuickItems с карты (например, нажав).
Моя первая попытка была childAt
.ChildAt (…) все время возвращает один и тот же объект.Даже если в выбранной позиции нет объекта.
Как я могу получить существующие объекты карты на карте qml?
План Б: Как я могузапросить все объекты карты в определенной области?
ColumnLayout {
...
Item {
Layout.fillHeight: true
Layout.fillWidth: true
Map {
id: map
objectName: "Map"
anchors.fill: parent
plugin: openTopoPlugin
}
MouseArea {
id: mapMouseArea
objectName: "Mouse Area"
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
hoverEnabled: true
}
}
}
MsnMapFormular {
MapItm { // MapQuickItem
id: mapItm
coordinate: QtPositioning.coordinate( 48.089116, 11.284820 );
}
MapPolygonObj { // MapItemGroup
id: mapGrp
objectName: "mapGrp"
}
map.center: QtPositioning.coordinate(48.08120, 11.28295) // opf
map.plugin: Plugin { name: 'osm'; }
Component.onCompleted: {
msnMap.addMapItem( mapItm )
msnMap.addMapItemGroup( mapGrp )
}
mapMouseArea.onClicked: {
if (mouse.button === Qt.LeftButton) {
var itm = map.childAt( mapMouseArea.mouseX, mapMouseArea.mouseY )
if ( itm )
console.log( itm.objectName )
else
console.log( "no object here" )
}
}
}
}