Spec-Zone.ru › Qt 5.15

Тип QML координат

Этот тип является представлением QML типа QGeoCoordinate и представляет географическую позицию в виде атрибутов широты, долготы и высоты. Атрибут широты указывает количество десятичных градусов выше и ниже экватора. Положительная широта указывает на Северное полушарие, а отрицательная — на Южное полушарие. Атрибут долготы указывает количество десятичных градусов к востоку и западу. Положительная долгота указывает на Восточное полушарие, а отрицательная — на Западное полушарие. Атрибут высоты указывает количество метров над уровнем моря. Вместе эти атрибуты определяют трёхмерное положение в любой точке на поверхности Земли или в еёблизи.

Атрибут isValid может использоваться для проверки валидности координат. Координаты считаются валидными, если у них есть валидные широта и долгота. Валидная высота не требуется. Широта должна быть в диапазоне от -90 до 90 включительно, а долгота — от -180 до 180 включительно.

Тип coordinate используется многими другими типами в модуле Qt Location для указания положения объекта на карте, текущего положения устройства и многих других задач. Они также содержат ряд важных утилитарных методов, которые упрощают в противном случае сложные вычисления, такие как atDistanceAndAzimuth().

Точность

Атрибуты широты, долготы и высоты, хранящиеся в типе координат, представлены как числа с плавающей точкой, что обеспечивает приблизительно 16 десятичных знаков точности — достаточно для указания микрометров. Вычисления, выполняемые в методах координат, такие как azimuthTo() и distanceTo(), также используют числа с плавающей точкой для всех промежуточных значений, но присущие неточности их сферической модели Земли доминируют над количеством ошибок в их результатах.

Пример использования

Используйте свойства типа variant для хранения coordinate. Для создания coordinate используйте один из описанных ниже методов. Во всех случаях указание атрибута высоты является необязательным.

Для создания значения coordinate используйте функцию QtPositioning.coordinate():

import QtPositioning 5.2

Location { coordinate: QtPositioning.coordinate(-27.5, 153.1) }

или как отдельные компоненты широты, долготы и высоты:

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-5.13/qml-coordinate.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API