QGeoCoordinate Class
La clase QGeoCoordinate define una posición geográfica en la superficie de la Tierra. Más...
| Cabecera: | #include <QGeoCoordinate> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Positioning)target_link_libraries(mytarget PRIVATE Qt6::Positioning) |
| qmake: | QT += positioning |
Tipos públicos
| enum | CoordinateFormat { Degrees, DegreesWithHemisphere, DegreesMinutes, DegreesMinutesWithHemisphere, DegreesMinutesSeconds, DegreesMinutesSecondsWithHemisphere } |
| enum | CoordinateType { InvalidCoordinate, Coordinate2D, Coordinate3D } |
Propiedades
Funciones públicas
| QGeoCoordinate() | |
| QGeoCoordinate(double latitude, double longitude) | |
| QGeoCoordinate(double latitude, double longitude, double altitude) | |
| QGeoCoordinate(const QGeoCoordinate &other) | |
(since 6.2) | QGeoCoordinate(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) |
(since 6.2) void | swap(QGeoCoordinate &other) |
| QString | toString(QGeoCoordinate::CoordinateFormat format = DegreesMinutesSecondsWithHemisphere) const |
| QGeoCoordinate::CoordinateType | type() const |
(since 6.2) QGeoCoordinate & | operator=(QGeoCoordinate &&other) |
| QGeoCoordinate & | operator=(const QGeoCoordinate &other) |
Relacionados No Miembros
| 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) |
Descripción detallada
Una QGeoCoordinate está definida por la latitud, la longitud y, opcionalmente, la altitud.
Utilice type() para determinar si una coordenada es una coordenada 2D (sólo tiene latitud y longitud) o 3D (tiene latitud, longitud y altitud). Utilice distanceTo() y azimuthTo() para calcular la distancia y el rumbo entre coordenadas.
Los valores de las coordenadas deben especificarse utilizando el datum WGS84. Para más información sobre términos geográficos, consulte este artículo sobre coordenadas y otro sobre sistemas geodésicos, incluido WGS84.
En este contexto, el acimut equivale al rumbo de una brújula basado en el norte verdadero.
Esta clase también es accesible en QML como geoCoordinate.
Documentación del tipo de miembro
enum QGeoCoordinate::CoordinateFormat
Define las posibles opciones de formato para toString().
| Constante | Valor | Descripción |
|---|---|---|
QGeoCoordinate::Degrees | 0 | Devuelve una representación de cadena de las coordenadas en formato de grados decimales. |
QGeoCoordinate::DegreesWithHemisphere | 1 | Devuelve una representación de cadena de las coordenadas en formato de grados decimales, utilizando "N", "S", "E" u "O" para indicar los hemisferios de las coordenadas. |
QGeoCoordinate::DegreesMinutes | 2 | Devuelve una representación de las coordenadas en formato grados-minutos. |
QGeoCoordinate::DegreesMinutesWithHemisphere | 3 | Devuelve una representación de las coordenadas en formato grados-minutos, utilizando "N", "S", "E" u "O" para indicar los hemisferios de las coordenadas. |
QGeoCoordinate::DegreesMinutesSeconds | 4 | Devuelve una representación de las coordenadas en formato grados-minutos-segundos. |
QGeoCoordinate::DegreesMinutesSecondsWithHemisphere | 5 | Devuelve una representación de las coordenadas en formato grados-minutos-segundos, utilizando "N", "S", "E" u "O" para indicar los hemisferios de las coordenadas. |
Véase también toString().
enum QGeoCoordinate::CoordinateType
Define los tipos de una coordenada.
| Constante | Valor | Descripción |
|---|---|---|
QGeoCoordinate::InvalidCoordinate | 0 | Coordenada no válida. Una coordenada no es válida si sus valores de latitud o longitud no son válidos. |
QGeoCoordinate::Coordinate2D | 1 | Una coordenada con valores válidos de latitud y longitud. |
QGeoCoordinate::Coordinate3D | 2 | Una coordenada con valores válidos de latitud y longitud, y también un valor de altitud. |
Documentación de propiedades
altitude : double
Esta propiedad contiene la altitud en metros sobre el nivel del mar.
La propiedad es indefinida (qQNaN()) si no se ha establecido la altitud.
Aunque esta propiedad se introduce en Qt 5.5, las funciones de acceso relacionadas existen desde la primera versión de esta clase.
Funciones de acceso:
| double | altitude() const |
| void | setAltitude(double altitude) |
[read-only] isValid : bool
Esta propiedad contiene la validez de esta coordenada geográfica.
La coordenada geográfica es válida si las propiedades longitude y latitude tienen valores válidos.
Aunque esta propiedad se introdujo en Qt 5.5, las funciones de acceso relacionadas existen desde la primera versión de esta clase.
Funciones de acceso:
| bool | isValid() const |
latitude : double
Esta propiedad contiene la latitud en grados decimales.
La propiedad es indefinida (qQNaN()) si la latitud no ha sido establecida. Una latitud positiva indica el Hemisferio Norte, y una latitud negativa indica el Hemisferio Sur. Al establecer la latitud, el nuevo valor debe estar en el formato del datum WGS84.
Para ser válida, la latitud debe estar comprendida entre -90 y 90 inclusive.
Aunque esta propiedad se introduce en Qt 5.5, las funciones de acceso relacionadas existen desde la primera versión de esta clase.
Funciones de acceso:
| double | latitude() const |
| void | setLatitude(double latitude) |
longitude : double
Esta propiedad contiene la longitud en grados decimales.
La propiedad es indefinida (qQNaN()) si la longitud no ha sido establecida. Una longitud positiva indica el Hemisferio Oriental, y una longitud negativa indica el Hemisferio Occidental. Al establecer la longitud, el nuevo valor debe estar en el formato del datum WGS84.
Para que sea válida, la longitud debe estar comprendida entre -180 y 180, ambos inclusive.
Aunque esta propiedad se introduce en Qt 5.5, las funciones de acceso relacionadas existen desde la primera versión de esta clase.
Funciones de acceso:
| double | longitude() const |
| void | setLongitude(double longitude) |
Documentación de las funciones miembro
QGeoCoordinate::QGeoCoordinate()
Construye una coordenada. La coordenada no será válida hasta que se haya llamado a setLatitude() y setLongitude().
QGeoCoordinate::QGeoCoordinate(double latitude, double longitude)
Construye una coordenada con los valores latitude y longitude.
Si la latitud no está entre -90 y 90 inclusive, o la longitud no está entre -180 y 180 inclusive, no se establece ninguno de los valores y type() será QGeoCoordinate::InvalidCoordinate.
Véase también isValid().
QGeoCoordinate::QGeoCoordinate(double latitude, double longitude, double altitude)
Construye una coordenada con los valores latitude, longitude y altitude.
Si la latitud no está entre -90 y 90 inclusive, o la longitud no está entre -180 y 180 inclusive, no se establece ninguno de los valores y type() será QGeoCoordinate::InvalidCoordinate.
Tenga en cuenta que altitude especifica los metros sobre el nivel del mar.
Véase también isValid().
QGeoCoordinate::QGeoCoordinate(const QGeoCoordinate &other)
Construye una coordenada a partir del contenido de other.
[constexpr noexcept, since 6.2] QGeoCoordinate::QGeoCoordinate(QGeoCoordinate &&other)
Construye una coordenada movida desde other.
Nota: El objeto QGeoCoordinate movido desde sólo puede ser destruido o asignado. El efecto de llamar a otras funciones que no sean el destructor o uno de los operadores de asignación es indefinido.
Esta función se introdujo en Qt 6.2.
[noexcept] QGeoCoordinate::~QGeoCoordinate()
Destruye el objeto de coordenadas.
double QGeoCoordinate::altitude() const
Devuelve la altitud (metros sobre el nivel del mar).
El valor devuelto es indefinido si no se ha establecido la altitud.
Nota: Función Getter para la propiedad altitud.
Véase también setAltitude() y type().
[invokable] QGeoCoordinate QGeoCoordinate::atDistanceAndAzimuth(qreal distance, qreal azimuth, qreal distanceUp = 0.0) const
Devuelve la coordenada que se alcanza viajando distance metros desde la coordenada actual en azimuth (o rumbo) a lo largo de un gran círculo. Se asume que la Tierra es esférica a efectos de este cálculo.
A la altitud se le añadirá distanceUp.
Devuelve una coordenada inválida si esta coordenada es inválida.
Nota: Esta función puede invocarse a través del sistema de meta-objetos y desde QML. Véase Q_INVOKABLE.
[invokable] qreal QGeoCoordinate::azimuthTo(const QGeoCoordinate &other) const
Devuelve el acimut (o rumbo) en grados desde esta coordenada a la coordenada especificada por other. La altitud no se utiliza en el cálculo.
El rumbo devuelto es el rumbo desde el origen hasta other a lo largo del gran círculo entre las dos coordenadas. Se supone que la Tierra es esférica a efectos de este cálculo.
Devuelve 0 si el tipo de esta coordenada o el tipo de other es QGeoCoordinate::InvalidCoordinate.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
[invokable] qreal QGeoCoordinate::distanceTo(const QGeoCoordinate &other) const
Devuelve la distancia (en metros) desde esta coordenada a la coordenada especificada por other. La altitud no se utiliza en el cálculo.
Este cálculo devuelve la distancia ortodrómica entre las dos coordenadas, suponiendo que la Tierra es esférica a efectos de este cálculo.
Devuelve 0 si el tipo de esta coordenada o el tipo de other es QGeoCoordinate::InvalidCoordinate.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
bool QGeoCoordinate::isValid() const
Devuelve true si longitude y latitude son válidos.
Nota: Función Getter para la propiedad isValid.
double QGeoCoordinate::latitude() const
Devuelve la latitud, en grados decimales. El valor devuelto es indefinido si no se ha establecido la latitud.
Una latitud positiva indica el Hemisferio Norte, y una latitud negativa indica el Hemisferio Sur.
Nota: Función Getter para la propiedad latitud.
Véase también setLatitude() y type().
double QGeoCoordinate::longitude() const
Devuelve la longitud, en grados decimales. El valor devuelto es indefinido si no se ha establecido la longitud.
Una longitud positiva indica el Hemisferio Oriental, y una longitud negativa indica el Hemisferio Occidental.
Nota: Función Getter para la propiedad longitud.
Véase también setLongitude() y type().
void QGeoCoordinate::setAltitude(double altitude)
Establece la altitud (metros sobre el nivel del mar) en altitude.
Nota: Función Setter para la propiedad altitude.
Véase también altitude().
void QGeoCoordinate::setLatitude(double latitude)
Establece la latitud (en grados decimales) en latitude. El valor debe estar en el datum WGS84.
Para ser válida, la latitud debe estar comprendida entre -90 y 90, ambos inclusive.
Nota: Función Setter para la propiedad latitude.
Véase también latitude().
void QGeoCoordinate::setLongitude(double longitude)
Establece la longitud (en grados decimales) en longitude. El valor debe estar en el datum WGS84.
Para ser válida, la longitud debe estar comprendida entre -180 y 180, ambos inclusive.
Nota: Función Setter para la propiedad longitude.
Véase también longitude().
[noexcept, since 6.2] void QGeoCoordinate::swap(QGeoCoordinate &other)
Intercambia esta coordenada con other. Esta operación es muy rápida y nunca falla.
Esta función se introdujo en Qt 6.2.
[invokable] QString QGeoCoordinate::toString(QGeoCoordinate::CoordinateFormat format = DegreesMinutesSecondsWithHemisphere) const
Devuelve esta coordenada como una cadena en la dirección format especificada.
Por ejemplo, si esta coordenada tiene una latitud de -27,46758, una longitud de 153,027892 y una altitud de 28,1, estas son las cadenas devueltas en función de format:
| format valor | Cadena devuelta |
|---|---|
| Degrees | -27.46758°, 153.02789°, 28.1m |
| DegreesWithHemisphere | 27,46758° S, 153,02789° E, 28,1m |
| DegreesMinutes | -27° 28.054', 153° 1.673', 28.1m |
| DegreesMinutesWithHemisphere | 27° 28.054 S', 153° 1.673' E, 28.1m |
| DegreesMinutesSeconds | -27° 28' 3.2", 153° 1' 40.4", 28.1m |
| DegreesMinutesSecondsWithHemisphere | 27° 28' 3,2" S, 153° 1' 40,4" E, 28,1m |
El campo de altitud se omite si no se establece ninguna altitud.
Si la coordenada no es válida, se devuelve una cadena vacía.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
QGeoCoordinate::CoordinateType QGeoCoordinate::type() const
Devuelve el tipo de esta coordenada.
[noexcept, since 6.2] QGeoCoordinate &QGeoCoordinate::operator=(QGeoCoordinate &&other)
Mover-asigna other a esta coordenada y devuelve una referencia a esta coordenada.
Nota: El objeto movido-desde QGeoCoordinate sólo puede ser destruido o asignado. El efecto de llamar a otras funciones que no sean el destructor o uno de los operadores de asignación es indefinido.
Esta función se introdujo en Qt 6.2.
QGeoCoordinate &QGeoCoordinate::operator=(const QGeoCoordinate &other)
Asigna other a esta coordenada y devuelve una referencia a esta coordenada.
No miembros relacionados
bool operator!=(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs)
Devuelve true si la latitud, longitud o altitud de la coordenada lhs no son idénticas a las de la coordenada rhs. En caso contrario, devuelve false.
QDataStream &operator<<(QDataStream &stream, const QGeoCoordinate &coordinate)
Escribe el coordinate dado en el stream especificado.
Véase también Serializar tipos de datos Qt.
bool operator==(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs)
Devuelve true si la latitud, longitud y altitud de la coordenada lhs son las mismas que las de la coordenada rhs. En caso contrario devuelve false.
La longitud se ignorará si la latitud es +/- 90 grados.
QDataStream &operator>>(QDataStream &stream, QGeoCoordinate &coordinate)
Lee una coordenada del stream especificado en el coordinate dado.
Véase también Serializar tipos de datos Qt.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.