Класс QGeoCoordinate
Класс QGeoCoordinate определяет географическую позицию на поверхности Земли. Подробнее...
| Заголовок: | #include <QGeoCoordinate> |
| qmake: | QT += positioning |
| С момента: | Qt 5.2 |
Этот класс был представлен в Qt 5.2.
Типы публичного доступа
| перечисление | CoordinateFormat { Degrees, DegreesWithHemisphere, DegreesMinutes, DegreesMinutesWithHemisphere, DegreesMinutesSeconds, DegreesMinutesSecondsWithHemisphere } |
| перечисление | CoordinateType { InvalidCoordinate, Coordinate2D, Coordinate3D } |
Свойства
Публичные функции
| QGeoCoordinate(const QGeoCoordinate &other) | |
| QGeoCoordinate(double latitude, double longitude, double altitude) | |
| QGeoCoordinate(double latitude, double longitude) | |
| QGeoCoordinate() | |
| 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 &other) const |
| bool | operator==(const QGeoCoordinate &other) const |
Связанные нечлены
| QDataStream & | operator<<(QDataStream &stream, const QGeoCoordinate &coordinate) |
| 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 |
Координата с действительными значениями широты и долготы, а также значением высоты. |
Документация свойств
altitude : double
Это свойство содержит высоту в метрах над уровнем моря.
Свойство не определено (qQNaN()), если высота не была задана.
Хотя это свойство было введено в Qt 5.5, связанные функции доступа существуют с первой версии этого класса.
Это свойство было введено в Qt 5.5.
Функции доступа:
| double | altitude() const |
| void | setAltitude(double altitude) |
isValid : const bool
Это свойство содержит значение валидности этого геокоординаты.
Геокоордината является валидной, если свойства longitude и latitude были заданы на валидные значения.
Хотя это свойство было введено в Qt 5.5, связанные функции доступа существуют с первой версии этого класса.
Это свойство было введено в Qt 5.5.
Функции доступа:
| bool | isValid() const |
latitude : double
Это свойство содержит широту в десятичных градусах.
Свойство не определено (qQNaN()), если широта не была задана. Положительная широта указывает на Северное полушарие, а отрицательная широта - на Южное полушарие. При установке широты новое значение должно быть в формате WGS84.
Для валидности широты она должна быть в диапазоне от -90 до 90 включительно.
Хотя это свойство было введено в Qt 5.5, связанные функции доступа существуют с первой версии этого класса.
Это свойство было введено в Qt 5.5.
Функции доступа:
| double | latitude() const |
| void | setLatitude(double latitude) |
longitude : double
Это свойство содержит долготу в десятичных градусах.
Свойство не определено (qQNaN()), если долгота не была задана. Положительная долгота указывает на Восточное полушарие, а отрицательная долгота - на Западное полушарие. При установке долготы новое значение должно быть в формате WGS84.
Для валидности долготы она должна быть в диапазоне от -180 до 180 включительно.
Хотя это свойство было введено в Qt 5.5, связанные функции доступа существуют с первой версии этого класса.
Это свойство было введено в Qt 5.5.
Функции доступа:
| double | longitude() const |
| void | setLongitude(double longitude) |
Документация по членам-функциям
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().
QGeoCoordinate &QGeoCoordinate::operator=(const QGeoCoordinate &other)
Присваивает other этой координате и возвращает ссылку на эту координату.
QGeoCoordinate::~QGeoCoordinate()
Уничтожает объект координаты.
double QGeoCoordinate::altitude() const
Возвращает высоту (в метрах над уровнем моря).
Возвращаемое значение не определено, если высота не была установлена.
Примечание: Функция-геттер для свойства altitude.
См. также setAltitude() и type().
QGeoCoordinate QGeoCoordinate::atDistanceAndAzimuth(qreal distance, qreal azimuth, qreal distanceUp = 0.0) const
Возвращает координату, достигнутую при перемещении на distance метров от текущей координаты под углом azimuth (или азимутом) по большой окружности. Предполагается, что Земля является сферической для целей этого расчета.
Высота будет увеличена на distanceUp.
Возвращает невалидную координату, если текущая координата невалидна.
Примечание: Эта функция может быть вызвана через мета-объектную систему и из QML. См. Q_INVOKABLE.
qreal QGeoCoordinate::azimuthTo(const QGeoCoordinate &other) const
Возвращает азимут (или направление) в градусах от этой координаты до координаты, заданной other. Высота не используется в расчёте.
Возвращаемый азимут - это направление от начала координат до other по большой окружности между двумя координатами. Предполагается, что Земля является сферической для целей этого расчета.
Возвращает 0, если тип этой координаты или тип other равен QGeoCoordinate::InvalidCoordinate.
Примечание: Эта функция может быть вызвана через мета-объектную систему и из QML. См. Q_INVOKABLE.
qreal QGeoCoordinate::distanceTo(const QGeoCoordinate &other) const
Возвращает расстояние (в метрах) от этой координаты до координаты, заданной other. Высота не используется в расчёте.
Этот расчет возвращает расстояние по большой окружности между двумя координатами, предполагая, что Земля сферическая для целей этого расчета.
Возвращает 0, если тип этой координаты или тип other равен QGeoCoordinate::InvalidCoordinate.
Примечание: Эта функция может быть вызвана через мета-объектную систему и из QML. См. Q_INVOKABLE.
bool QGeoCoordinate::isValid() const
Возвращает true если longitude и latitude валидны.
Примечание: Функция-геттер для свойства 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().
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 QGeoCoordinate::operator!=(const QGeoCoordinate &other) const
Возвращает true если широта, долгота или высота этих координат не идентичны other.
bool QGeoCoordinate::operator==(const QGeoCoordinate &other) const
Возвращает true, если широта, долгота и высота этих координат совпадают с other.
Долгота будет игнорироваться, если широта равна +/- 90 градусов.
Связанные нечлены
QDataStream &operator<<(QDataStream &stream, const QGeoCoordinate &coordinate)
Записывает заданные coordinate в указанный stream.
См. также Сериализация типов данных Qt.
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-5.14/qgeocoordinate.html