Тип QML координат
Этот тип представляет собой представление QML типа QGeoCoordinate и представляет географическую позицию в виде атрибутов широты, долготы и высоты. Атрибут широты указывает количество десятичных градусов выше и ниже экватора. Положительная широта указывает на Северное полушарие, а отрицательная – на Южное. Атрибут долготы указывает количество десятичных градусов к востоку и западу. Положительная долгота указывает на Восточное полушарие, а отрицательная – на Западное. Атрибут высоты указывает количество метров над уровнем моря. Вместе эти атрибуты определяют трехмерную позицию в любой точке на или около поверхности Земли.
Атрибут isValid может использоваться для проверки корректности координаты. Координата считается корректной, если она имеет действительные широту и долготу. Действительная высота не требуется. Широта должна быть в диапазоне от -90 до 90 включительно, а долгота – от -180 до 180 включительно.
Тип coordinate используется во многих других типах модуля Qt Location для указания позиции объекта на карте, текущей позиции устройства и многих других задач. Они также содержат ряд важных служебных методов, которые упрощают в противном случае сложные вычисления, такие как atDistanceAndAzimuth().
Точность
Атрибуты широты, долготы и высоты, хранящиеся в типе координат, представлены в виде чисел с плавающей точкой, что обеспечивает точность примерно до 16 десятичных знаков – достаточно для указания микрометров. Вычисления, выполняемые в методах координат, таких как azimuthTo() и distanceTo(), также используют числа с плавающей точкой для всех промежуточных значений, но неточности, присущие их сферической модели Земли, доминируют над количеством ошибок в их выходных данных.
Пример использования
Используйте свойства типа var для хранения coordinate. Чтобы создать coordinate, воспользуйтесь одним из описанных ниже методов. Во всех случаях указание атрибута altitude является необязательным.
Для создания значения coordinate используйте функцию QtPositioning.coordinate():
import QtPositioning
Location { coordinate: QtPositioning.coordinate(-27.5, 153.1) } или как отдельные компоненты latitude, longitude и altitude:
Location {
coordinate {
latitude: -27.5
longitude: 153.1
}
} При интеграции с C++, обратите внимание, что любое значение QGeoCoordinate, передаваемое в QML из C++, автоматически преобразуется в значение coordinate, и наоборот.
Свойства
широта
real latitude
Это свойство содержит значение широты географической позиции (десятичные градусы). Положительная широта указывает на Северное полушарие, а отрицательная – на Южное. Если свойство не было установлено, его значение по умолчанию равно NaN.
Для получения более подробной информации см. свойство QGeoCoordinate::latitude.
долгота
real longitude
Это свойство содержит значение долготы географической позиции (десятичные градусы). Положительная долгота указывает на Восточное полушарие, а отрицательная – на Западное. Если свойство не было установлено, его значение по умолчанию равно NaN.
Для получения более подробной информации см. свойство QGeoCoordinate::longitude.
высота
real altitude
Это свойство содержит значение высоты (метры над уровнем моря). Если свойство не было установлено, его значение по умолчанию равно NaN.
Для получения более подробной информации см. свойство QGeoCoordinate::altitude.
isValid
bool isValid
Это свойство содержит текущую корректность координаты. Координаты считаются корректными, если они были заданы с действительной широтой и долготой (высота не требуется).
Для того, чтобы считаться корректной, широта должна быть в диапазоне от -90 до 90 включительно, а долгота – от -180 до 180 включительно.
Это свойство является только для чтения.
Методы
distanceTo()
real distanceTo(coordinate other)
Возвращает расстояние (в метрах) от этой координаты до координаты, указанной параметром other. Высота в расчете не используется.
Это вычисление возвращает расстояние по большой окружности между двумя координатами, предполагая, что Земля сферическая для целей этого вычисления.
azimuthTo()
real azimuth(coordinate other)
Возвращает азимут (или направление) в градусах от этой координаты до координаты, указанной параметром other. Высота в расчете не используется.
Предполагается, что Земля сферическая для целей этого вычисления.
atDistanceAndAzimuth()
coordinate atDistanceAndAzimuth(real distance, real azimuth)
Возвращает координату, достигаемую при перемещении на distance метров от этой координаты под углом azimuth градусов по большой окружности.
Предполагается, что Земля сферическая для целей этого вычисления.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-coordinate.html