Получение широты и долготы по координатам в QML - PullRequest
2 голосов
/ 12 мая 2019

У меня есть код 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 "с.ш., 76 ° 57' 41,9" в.д.)

Я хочу получить это как десятичную широту и долготу (Координата: 76.9616344 8.4892798).

Как это можно сделать?

1 Ответ

2 голосов
/ 12 мая 2019

Вы должны использовать свойства 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...