Я делаю проект с помощью Qt Creator (Community) 5.5.1 с поддержкой QML. У меня есть этот код:QML-карты: получить координаты при нажатии экрана
main.qml:
MouseArea
{ anchors.fill: parent
onPressed: console.log('latitude = '+ (map.toCoordinate(Qt.point(mouse.x,mouse.y)).latitude),
'longitude = '+ (map.toCoordinate(Qt.point(mouse.x,mouse.y)).longitude));
Так что, когда я нажимаю на экран, координаты этого места на карте отображаются на консоли. Но я не знаю, как я могу использовать эти координаты для размещения маркера на экране, где произошел щелчок. Вот код маркера:
MapQuickItem {
id:marker
coordinate: QtPositioning.coordinate(******, ******);//stars are the coordinates
sourceItem: Image{
id: image
source: "marker2.png"
}
anchorPoint.x: image.width/2
anchorPoint.y: image.height
}
Что я могу сделать, чтобы расположить маркер на карте в координатах, где произошел щелчок? Благодарю.
Спасибо! Но если у меня нет никаких маркеров на карте, и это будет новый маркер? Как я могу сделать? – Khan
@Khan, ваша цель иметь единственный маркер? Вы хотите, чтобы он появлялся только при щелчке? Если да, то как установить «видимый» маркера на false, а затем установить его в true в дескрипторе onPressed. – nfranklin
Если вы хотите «создать» новые маркеры, которые каждый новый клик, проверьте [docs на создание динамических объектов] (http://doc.qt.io/qt-5/qtqml-javascript-dynamicobjectcreation.html) ..или еще лучше, используйте модель (где вы добавляете локализованные местоположения) и [MapItemView] (http://doc.qt.io/qt-5/qml-qtlocation-mapitemview.htm) – nfranklin