Класс QGeoCoordinate
Класс QGeoCoordinate определяет географическую позицию на поверхности Земли. Подробнее...
| Заголовок: | #include <QGeoCoordinate> |
| CMake: | find_package(Qt6 COMPONENTS Positioning REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Positioning) |
| qmake: | QT += positioning |
| С момента: | Qt 5.2 |
Общедоступные типы
| Перечисление | CoordinateFormat { Degrees, DegreesWithHemisphere, DegreesMinutes, DegreesMinutesWithHemisphere, DegreesMinutesSeconds, DegreesMinutesSecondsWithHemisphere } |
| Перечисление | CoordinateType { InvalidCoordinate, Coordinate2D, Coordinate3D } |
Свойства
Общедоступные функции
| QGeoCoordinate(QGeoCoordinate &&other) | |
| QGeoCoordinate(const QGeoCoordinate &other) | |
| QGeoCoordinate(double latitude, double longitude, double altitude) | |
| QGeoCoordinate(double latitude, double longitude) | |
| QGeoCoordinate() | |
| QGeoCoordinate & | operator=(QGeoCoordinate &&other) |
| QGeoCoordinate & | operator=(const QGeoCoordinate &other) |
| ~QGeoCoordinate() | |
| double | altitude() const |
| QGeoCoordinate | atDistanceAndAzimuth(qreal distance, qreal azimuth, qreal distanceUp = 0.0) const |
| qreal | azimuthTo(const QGeoCoordinate &other) const |
| qreal | distanceTo(const QGeoCoordinate &other) const |
| bool | isValid() const |
| double | latitude() const |
| double | longitude() const |
| void | setAltitude(double altitude) |
| void | setLatitude(double latitude) |
| void | setLongitude(double longitude) |
| QString | toString(QGeoCoordinate::CoordinateFormat format = DegreesMinutesSecondsWithHemisphere) const |
| QGeoCoordinate::CoordinateType | type() const |
Связанные нечлены
| bool | operator!=(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs) |
| QDataStream & | operator<<(QDataStream &stream, const QGeoCoordinate &coordinate) |
| bool | operator==(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs) |
| QDataStream & | operator>>(QDataStream &stream, QGeoCoordinate &coordinate) |
Подробное описание
QGeoCoordinate определяется широтой, долготой и необязательно высотой.
Используйте type() для определения, является ли координата 2D (только широта и долгота) или 3D (широта, долгота и высота).
Используйте distanceTo() и azimuthTo() для расчета расстояния и азимута между координатами.
Значения координат должны быть указаны с использованием геодезической системы WGS84. Дополнительную информацию о географических терминах см. в этой статье о координатах и в другой статье о геодезических системах, включая WGS84.
Азимут в данном контексте эквивалентен компасному направлению относительно истинного севера.
Этот класс является Q_GADGET с Qt 5.5. Он может быть непосредственно использован из C++ и QML.
Документация типов членов
Перечисление QGeoCoordinate::CoordinateFormat
Определяет возможные форматы форматирования для toString().
| Константа | Значение | Описание |
|---|---|---|
QGeoCoordinate::Degrees |
0 |
Возвращает строковое представление координат в формате десятичных градусов. |
QGeoCoordinate::DegreesWithHemisphere |
1 |
Возвращает строковое представление координат в формате десятичных градусов, используя 'N', 'S', 'E' или 'W' для указания полушарий координат. |
QGeoCoordinate::DegreesMinutes |
2 |
Возвращает строковое представление координат в формате градусов-минут. |
QGeoCoordinate::DegreesMinutesWithHemisphere |
3 |
Возвращает строковое представление координат в формате градусов-минут, используя 'N', 'S', 'E' или 'W' для указания полушарий координат. |
QGeoCoordinate::DegreesMinutesSeconds |
4 |
Возвращает строковое представление координат в формате градусов-минут-секунд. |
QGeoCoordinate::DegreesMinutesSecondsWithHemisphere |
5 |
Возвращает строковое представление координат в формате градусов-минут-секунд, используя 'N', 'S', 'E' или 'W' для указания полушарий координат. |
См. такжеtoString().
Перечисление QGeoCoordinate::CoordinateType
Определяет типы координат.
| Константа | Значение | Описание |
|---|---|---|
QGeoCoordinate::InvalidCoordinate |
0 |
Недействительная координата. Координата является недействительной, если значения широты или долготы недействительны. |
QGeoCoordinate::Coordinate2D |
1 |
Координата с действительными значениями широты и долготы. |
QGeoCoordinate::Coordinate3D |
2 |
Координата с действительными значениями широты и долготы, а также значением высоты. |
Документация по свойству
[since 5.5] altitude : double
Это свойство содержит высоту в метрах над уровнем моря.
Свойство не определено (qQNaN()), если высота не была установлена.
Хотя это свойство было введено в Qt 5.5, соответствующие функции-обработчики существуют с первого релиза этого класса.
Это свойство было введено в Qt 5.5.
Функции доступа:
| double | altitude() const |
| void | setAltitude(double altitude) |
[read-only, since 5.5] isValid : const bool
Это свойство содержит информацию о валидности географических координат.
Географические координаты валидны, если свойства longitude и latitude установлены на корректные значения.
Хотя это свойство было введено в Qt 5.5, соответствующие функции-обработчики существуют с первого релиза этого класса.
Это свойство было введено в Qt 5.5.
Функции доступа:
| bool | isValid() const |
[since 5.5] latitude : double
Это свойство содержит широту в десятичных градусах.
Свойство не определено (qQNaN()), если широта не была установлена. Положительное значение широты указывает на Северное полушарие, отрицательное — на Южное. При установке широты новое значение должно быть в формате WGS84.
Для валидности широта должна быть в диапазоне от -90 до 90 включительно.
Хотя это свойство было введено в Qt 5.5, соответствующие функции-обработчики существуют с первого релиза этого класса.
Это свойство было введено в Qt 5.5.
Функции доступа:
| double | latitude() const |
| void | setLatitude(double latitude) |
[since 5.5] longitude : double
Это свойство содержит долготу в десятичных градусах.
Свойство не определено (qQNaN()), если долгота не была установлена. Положительное значение долготы указывает на Восточное полушарие, отрицательное — на Западное. При установке долготы новое значение должно быть в формате WGS84.
Для валидности долгота должна быть в диапазоне от -180 до 180 включительно.
Хотя это свойство было введено в Qt 5.5, соответствующие функции-обработчики существуют с первого релиза этого класса.
Это свойство было введено в Qt 5.5.
Функции доступа:
| double | longitude() const |
| void | setLongitude(double longitude) |
Документация по членам-функциям
[since 6.2] QGeoCoordinate::QGeoCoordinate(QGeoCoordinate &&other)
Конструирует координату, перемещая данные из other.
Примечание: Объект QGeoCoordinate, из которого произошло перемещение, может быть только уничтожен или ему может быть присвоено значение. Действие вызова функций, отличных от деструктора или оператора присваивания, не определено.
Эта функция была введена в Qt 6.2.
QGeoCoordinate::QGeoCoordinate(const QGeoCoordinate &other)
Конструирует координату на основе содержимого other.
QGeoCoordinate::QGeoCoordinate(double latitude, double longitude, double altitude)
Конструирует координату с заданной latitude, longitude и altitude.
Если широта не находится в диапазоне от -90 до 90 включительно, или долгота не находится в диапазоне от -180 до 180 включительно, ни одно из значений не устанавливается, а тип (type()) будет QGeoCoordinate::InvalidCoordinate.
Обратите внимание, что altitude указывает высоту в метрах над уровнем моря.
См. также isValid().
QGeoCoordinate::QGeoCoordinate(double latitude, double longitude)
Конструирует координату с заданной latitude и longitude.
Если широта не находится в диапазоне от -90 до 90 включительно, или долгота не находится в диапазоне от -180 до 180 включительно, ни одно из значений не устанавливается, а тип (type()) будет QGeoCoordinate::InvalidCoordinate.
См. также isValid().
QGeoCoordinate::QGeoCoordinate()
Конструирует координату. Координата будет недействительной, пока не будут вызваны setLatitude() и setLongitude().
[since 6.2] QGeoCoordinate &QGeoCoordinate::operator=(QGeoCoordinate &&other)
Перемещает присваивание other текущей координате и возвращает ссылку на текущую координату.
Примечание: Объект QGeoCoordinate, из которого произошло перемещение, может быть только уничтожен или ему может быть присвоено значение. Действие вызова функций, отличных от деструктора или оператора присваивания, не определено.
Эта функция была введена в Qt 6.2.
QGeoCoordinate &QGeoCoordinate::operator=(const QGeoCoordinate &other)
Присваивает other текущей координате и возвращает ссылку на текущую координату.
QGeoCoordinate::~QGeoCoordinate()
Уничтожает объект координаты.
double QGeoCoordinate::altitude() const
Возвращает высоту (в метрах над уровнем моря).
Значение возвращается неопределенным, если высота не была установлена.
Примечание: Функция-обработчик свойства altitude.
См. также setAltitude() и type().
[invokable] QGeoCoordinate QGeoCoordinate::atDistanceAndAzimuth(qreal distance, qreal azimuth, qreal distanceUp = 0.0) const
Возвращает координату, достигаемую при перемещении на distance метров от текущей координаты по азимуту azimuth по большой окружности. Предполагается, что Земля является сферической для целей этого расчета.
Высота будет увеличена на distanceUp.
Возвращает недействительную координату, если текущая координата недействительна.
Примечание: К этой функции можно обратиться через механизм метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] qreal QGeoCoordinate::azimuthTo(const QGeoCoordinate &other) const
Возвращает азимут (или направление) в градусах от этой координаты к координате, указанной параметром other. Высота не используется в расчете.
Возвращаемое направление — это направление от начала до other вдоль большой окружности между двумя координатами. Предполагается, что Земля является сферической для целей этого расчета.
Возвращает 0, если тип этой координаты или типа other — QGeoCoordinate::InvalidCoordinate.
Примечание: К этой функции можно обратиться через механизм метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] qreal QGeoCoordinate::distanceTo(const QGeoCoordinate &other) const
Возвращает расстояние (в метрах) от этой координаты до координаты, указанной параметром other. Высота не используется в расчете.
Этот расчет возвращает расстояние по большой окружности между двумя координатами, предполагая, что Земля является сферической для целей этого расчета.
Возвращает 0, если тип этой координаты или типа other — QGeoCoordinate::InvalidCoordinate.
Примечание: К этой функции можно обратиться через механизм метаобъектов и из QML. См. Q_INVOKABLE.
bool QGeoCoordinate::isValid() const
Возвращает true если долгота и широта валидны.
Примечание: Функция-обработчик свойства isValid.
double QGeoCoordinate::latitude() const
Возвращает широту в десятичных градусах. Значение возвращаемого значения неопределено, если широта не была установлена.
Положительная широта указывает на Северное полушарие, а отрицательная — на Южное полушарие.
Примечание: Функция-геттер для свойства latitude.
См. также setLatitude() и type().
double QGeoCoordinate::longitude() const
Возвращает долготу в десятичных градусах. Значение возвращаемого значения неопределено, если долгота не была установлена.
Положительная долгота указывает на Восточное полушарие, а отрицательная — на Западное полушарие.
Примечание: Функция-геттер для свойства longitude.
См. также setLongitude() и type().
void QGeoCoordinate::setAltitude(double altitude)
Устанавливает высоту (в метрах над уровнем моря) в altitude.
Примечание: Функция-сеттер для свойства altitude.
См. также altitude().
void QGeoCoordinate::setLatitude(double latitude)
Устанавливает широту (в десятичных градусах) в latitude. Значение должно быть в системе координат WGS84.
Для корректности широта должна быть в диапазоне от -90 до 90 включительно.
Примечание: Функция-сеттер для свойства latitude.
См. также latitude().
void QGeoCoordinate::setLongitude(double longitude)
Устанавливает долготу (в десятичных градусах) в longitude. Значение должно быть в системе координат WGS84.
Для корректности долгота должна быть в диапазоне от -180 до 180 включительно.
Примечание: Функция-сеттер для свойства longitude.
См. также longitude().
[invokable] QString QGeoCoordinate::toString(QGeoCoordinate::CoordinateFormat format = DegreesMinutesSecondsWithHemisphere) const
Возвращает эти координаты в виде строки в указанном формате format.
Например, если у этих координат широта -27.46758, долгота 153.027892 и высота 28.1, то эти строки будут возвращены в зависимости от format:
| format значение | Возвращаемая строка |
|---|---|
| Degrees | -27.46758°, 153.02789°, 28.1м |
| DegreesWithHemisphere | 27.46758° Ю, 153.02789° В, 28.1м |
| DegreesMinutes | -27° 28.054', 153° 1.673', 28.1м |
| DegreesMinutesWithHemisphere | 27° 28.054 Ю', 153° 1.673' В, 28.1м |
| DegreesMinutesSeconds | -27° 28' 3.2", 153° 1' 40.4", 28.1м |
| DegreesMinutesSecondsWithHemisphere | 27° 28' 3.2" Ю, 153° 1' 40.4" В, 28.1м |
Поле высоты опускается, если высота не задана.
Если координаты некорректны, возвращается пустая строка.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
QGeoCoordinate::CoordinateType QGeoCoordinate::type() const
Возвращает тип этих координат.
Связанные нечленные функции
bool operator!=(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs)
Возвращает true если широта, долгота или высота координаты lhs не идентичны координатам rhs. В противном случае возвращает false.
QDataStream &operator<<(QDataStream &stream, const QGeoCoordinate &coordinate)
Записывает указанные coordinate в указанный stream.
См. также Сериализация типов данных Qt.
bool operator==(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs)
Возвращает true если широта, долгота и высота координаты lhs совпадают с координатами rhs. В противном случае возвращает false.
Долгота будет игнорирована, если широта равна +/- 90 градусам.
QDataStream &operator>>(QDataStream &stream, QGeoCoordinate &coordinate)
Считывает координаты из указанного stream в заданную coordinate.
См. также Сериализация типов данных Qt.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qgeocoordinate.html