En esta página

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)
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().

ConstanteValorDescripción
QGeoCoordinate::Degrees0Devuelve una representación de cadena de las coordenadas en formato de grados decimales.
QGeoCoordinate::DegreesWithHemisphere1Devuelve 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::DegreesMinutes2Devuelve una representación de las coordenadas en formato grados-minutos.
QGeoCoordinate::DegreesMinutesWithHemisphere3Devuelve una representación de las coordenadas en formato grados-minutos, utilizando "N", "S", "E" u "O" para indicar los hemisferios de las coordenadas.
QGeoCoordinate::DegreesMinutesSeconds4Devuelve una representación de las coordenadas en formato grados-minutos-segundos.
QGeoCoordinate::DegreesMinutesSecondsWithHemisphere5Devuelve 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.

ConstanteValorDescripción
QGeoCoordinate::InvalidCoordinate0Coordenada no válida. Una coordenada no es válida si sus valores de latitud o longitud no son válidos.
QGeoCoordinate::Coordinate2D1Una coordenada con valores válidos de latitud y longitud.
QGeoCoordinate::Coordinate3D2Una 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 valorCadena devuelta
Degrees-27.46758°, 153.02789°, 28.1m
DegreesWithHemisphere27,46758° S, 153,02789° E, 28,1m
DegreesMinutes-27° 28.054', 153° 1.673', 28.1m
DegreesMinutesWithHemisphere27° 28.054 S', 153° 1.673' E, 28.1m
DegreesMinutesSeconds-27° 28' 3.2", 153° 1' 40.4", 28.1m
DegreesMinutesSecondsWithHemisphere27° 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.