Позиционирование (QML)
Позиционирование по местоположению
Данные о местоположении включают точно заданную позицию на поверхности Земли — как предоставленную координатами широты и долготы — вместе с сопутствующими данными, такими как:
- Дата и время, в которые было сообщено о местоположении
- Скорость устройства, которое сообщило о местоположении
- Высота сообщенного местоположения (высота над уровнем моря)
- Азимут устройства в градусах относительно истинного севера
Дополнительную информацию см. на странице Географические координаты.
Эти данные могут быть извлечены с помощью различных методов. Одним из наиболее известных методов позиционирования является GPS (Глобальная система позиционирования), общедоступная система, которая использует сигналы радиоволн, принимаемые от спутников, вращающихся вокруг Земли, для расчета точного местоположения и времени приемника. Другим популярным методом является «Позиционирование по идентификатору ячейки», который использует идентификатор ячейки базовой станции, которая в настоящее время обслуживает принимающее устройство, для расчета его приблизительного местоположения. Эти и другие методы позиционирования могут использоваться с API местоположений; единственное требование к источнику данных о местоположении в API заключается в том, что он предоставляет координаты широты и долготы со значением даты/времени, с возможностью предоставления других перечисленных выше атрибутов.
Координаты
Координата — это базовая единица географической информации. Тип координата имеет атрибуты для хранения latitude, longitude и altitude.
Позиции
Трехмерное положение объекта, например, мобильного устройства, может быть задано с помощью широты, долготы и высоты. Это значения, хранящиеся в типе {координата}. Кроме того, для вычисления будущих положений нам необходимо знать, движется ли объект, какая скорость у него есть и какое временное метка последнего набора данных о местоположении. Следовательно, положение включает значения для координаты, скорости и временной метки. Позиция также несет ответственность за валидацию разумных значений для этих свойств. Они представлены как свойства latitudeValid, longitudeValid, altitudeValid, speedValid, horizontalAccuracyValid и verticalAccuracyValid.
Тип PositionSource
У нас есть тип Позиция, тип координата, но откуда берутся данные? Также неплохо иметь возможность указывать альтернативные источники. Возможно, вместо непосредственного приема сигналов со спутников GPS желательно провести некоторые тесты с использованием файла данных.
Тип PositionSource предоставляет разработчику контроль, в рамках ограничений, установленных платформой, над источником географических данных. Помимо традиционных источников, таких как GPS и данные сотовой связи, данные о местоположении могут поступать из файла журнала в формате NMEA.
NMEA — это распространенный текстовый протокол для задания навигационных данных. Для удобства предоставляется свойство nmeaSource, которое позволяет приложениям QML читать данные NMEA из файла журнала или сокета TCP. Источник будет отправлять обновления в соответствии со временной меткой каждого предложения NMEA, чтобы воспроизвести «повторное воспроизведение» записанных данных. Для использования сокета TCP установите схему URI «socket».
PositionSource {
nmeaSource: "socket://127.0.0.1:12345"
} Пример GeoFlickr
Пример GeoFlickr использует Location для загрузки миниатюрных изображений из Flickr, относящихся к текущему местоположению.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/location-positioning-qml.html