Класс QGeoCoordinate
Класс QGeoCoordinate определяет географическую позицию на поверхности Земли. Подробнее...
| Заголовок: | #include <QGeoCoordinate> |
| qmake: | QT += positioning |
| С момента: | Qt 5.2 |
Открытые типы
| Перечисление | CoordinateFormat { Degrees, DegreesWithHemisphere, DegreesMinutes, DegreesMinutesWithHemisphere, DegreesMinutesSeconds, DegreesMinutesSecondsWithHemisphere } |
| Перечисление | CoordinateType { InvalidCoordinate, Coordinate2D, Coordinate3D } |
Свойства
Открытые функции
| QGeoCoordinate() | |
| QGeoCoordinate(double latitude, double longitude) | |
| QGeoCoordinate(double latitude, double longitude, double altitude) | |
| QGeoCoordinate(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(CoordinateFormat format = DegreesMinutesSecondsWithHemisphere) const |
| CoordinateType | type() const |
| bool | operator!=(const QGeoCoordinate &other) const |
| QGeoCoordinate & | operator=(const QGeoCoordinate &other) |
| bool | operator==(const QGeoCoordinate &other) const |
Связанные нечлены
| QDataStream & | operator<<(QDataStream &stream, const QGeoCoordinate &coordinate) |
| QDataStream & | operator>>(QDataStream &stream, QGeoCoordinate &coordinate) |
Подробное описание
Класс QGeoCoordinate определяет географическую позицию на поверхности Земли.
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()
Конструирует координату. Координата будет невалидной, пока не будут вызваны setLatitude() и setLongitude().
QGeoCoordinate::QGeoCoordinate(double latitude, double longitude)
Конструирует координату с заданными latitude и longitude.
Если широта не находится в диапазоне от -90 до 90 включительно, или долгота не находится в диапазоне от -180 до 180 включительно, ни одно из значений не устанавливается, и type() будет QGeoCoordinate::InvalidCoordinate.
См. также isValid().
QGeoCoordinate::QGeoCoordinate(double latitude, double longitude, double altitude)
Конструирует координату с заданными latitude, longitude и altitude.
Если широта не находится в диапазоне от -90 до 90 включительно, или долгота не находится в диапазоне от -180 до 180 включительно, ни одно из значений не устанавливается, и type() будет QGeoCoordinate::InvalidCoordinate.
Обратите внимание, что altitude указывает высоту в метрах над уровнем моря.
См. также isValid().
QGeoCoordinate::QGeoCoordinate(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.
Возвращает невалидную координату, если текущая координата невалидна.
qreal QGeoCoordinate::azimuthTo(const QGeoCoordinate &other) const
Возвращает азимут (или направление) в градусах от этой координаты до координаты, указанной параметром other. Высота не используется в расчете.
Возвращаемый азимут — это направление от начала координат к other вдоль большой окружности между двумя координатами. Предполагается, что Земля является сферой для целей этого расчета.
Возвращает 0, если тип этой координаты или тип other равен QGeoCoordinate::InvalidCoordinate.
qreal QGeoCoordinate::distanceTo(const QGeoCoordinate &other) const
Возвращает расстояние (в метрах) от этой координаты до координаты, указанной параметром other. Высота не используется в расчете.
Этот расчет возвращает расстояние по большой окружности между двумя координатами, предполагая, что Земля является сферой для целей этого расчета.
Возвращает 0, если тип этой координаты или тип other равен QGeoCoordinate::InvalidCoordinate.
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(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м |
Поле высоты опускается, если высота не задана.
Если координаты недействительны, возвращается пустая строка.
CoordinateType QGeoCoordinate::type() const
Возвращает тип этих координат.
bool QGeoCoordinate::operator!=(const QGeoCoordinate &other) const
Возвращает true, если широта, долгота или высота этих координат не совпадают с other.
QGeoCoordinate &QGeoCoordinate::operator=(const QGeoCoordinate &other)
Присваивает 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.9/qgeocoordinate.html