Spec-Zone.ru › Qt 5.11

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

Тип координат представляет и хранит географическую позицию.

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

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

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

Точность

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

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

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

Для создания значения 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/archives/qt-5.11/qml-coordinate.html

Spec-Zone.ru

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