我有一个显示地图的QML代码,它有一个用于图像的MapQuickItem
。
MapQuickItem {
id: transMarker
sourceItem: Image {
id: transImage
width: 50
height: 50
source: "trans.png"
}
}
当我点击地图时,它应该将该图像粘贴到地图上,我可以通过以下代码来实现
transMarker.coordinate = map.toCoordinate(Qt.point(mouse.x,mouse.y))
我想永久保存位置,但是问题是我正在尝试打印map.toCoordinate(Qt.point(mouse.x,mouse.y))
它以度和分钟为单位打印(坐标:8°29'21.4“ N,76°57'41.9” E)
我想将其作为十进制经度和纬度(坐标:76.9616344 8.4892798)。
如何实现?
答案 0 :(得分:2)
您必须使用latitude
的longitude
和coordinate
属性:
Map {
id: map
anchors.fill: parent
plugin: Plugin {
name: "osm"
}
center: QtPositioning.coordinate(59.91, 10.75)
zoomLevel: 10
MapQuickItem {
id: transMarker
sourceItem: Image {
id: transImage
width: 50
height: 50
source: "trans.png"
}
}
MouseArea{
anchors.fill: parent
onClicked: {
var coord = map.toCoordinate(Qt.point(mouse.x,mouse.y));
transMarker.coordinate = coord;
console.log(coord.latitude, coord.longitude)
}
}
}
输出:
qml: 59.969159320456804 10.824157714841107
qml: 59.98427615215763 10.895568847649372
qml: 59.989771470871446 10.780212402338407
qml: 59.965722714293186 10.652496337891108