En esta página

Mapas y navegación (QML)

Mapas y Navegación proporciona tipos de interfaz de usuario QtQuick para mostrar información geográfica en un mapa, así como para permitir la interacción del usuario con los objetos superpuestos del mapa y la propia visualización. También contiene utilidades para la geocodificación (búsqueda de una coordenada geográfica a partir de una dirección) y la navegación (incluyendo indicaciones para llegar a pie o en coche).

Para realizar la navegación necesitamos routes desde el punto de partida hasta el de destino. Estas rutas están formadas por segmentos, donde cada routeSegment puede considerarse una subtarea de navegación; por ejemplo, "conducir 100 metros", o "girar a la izquierda". El principio y el final de cada segmento es un waypoint, es decir, una parte del trayecto.

Un caso típico de uso de la API es el de un usuario que busca un tipo concreto de lugar, como un restaurante; el usuario introduce una cadena de búsqueda en la aplicación de mapas y se le presenta una lista de resultados de restaurantes "cercanos" al dispositivo. La aplicación puede utilizarse entonces para navegar hasta el destino elegido utilizando una ruta optimizada en función de las características del entorno que puedan ayudar o dificultar el viaje. A continuación, la navegación avanza con el progreso del usuario monitorizado mediante la ubicación actual.

Los tipos se basan en los conceptos y tipos de la API de posicionamiento QML. Encontrará una introducción más práctica a los tipos Mapas y Navegación en el tutorial Mapas y Navegación.

Mapas

Visualización de mapas

Para mostrar un mapa se utilizan los tipos QML de Map. El tipo Mapa admite la interacción del usuario a través del tipo QML MapView. El objeto Mapa dibuja el mapa en pantalla utilizando OpenGL (ES), lo que permite un renderizado acelerado por hardware cuando está disponible.

Tipos clave

PluginUn complemento de servicios basados en la localización proporciona datos, incluidos datos cartográficos, que se muestran en un objeto Map.
MapQtQuick Elemento para mostrar un mapa en pantalla.
MapViewInteraction helper para realizar movimientos de panorámica, desplazamiento y zoom en un mapa.

Tenga en cuenta que el cliente debe crear un objeto Plugin antes de utilizar un tipo Map con el fin de tener acceso a los datos del mapa para mostrar.

Colocar objetos en un mapa (objetos superpuestos al mapa)

Los mapas también pueden contener objetos superpuestos, que se utilizan para mostrar información en su superficie. Existe un conjunto de objetos básicos predefinidos para la superposición de mapas, así como la posibilidad de implementar objetos personalizados de superposición de mapas utilizando el tipo MapQuickItem, que puede contener cualquier elemento estándar de QtQuick.

Tipos clave

MapCircleUn círculo geográfico (todos los puntos a una distancia determinada de un centro), opcionalmente con un borde.
MapRectangleUn rectángulo cuyos puntos superior izquierdo e inferior derecho se especifican como tipos de coordenadas, opcionalmente con un borde.
MapPolygonUn polígono formado por una lista arbitraria de coordenadas.
MapPolylineUna polilínea formada por una lista arbitraria de coordenadas.
MapQuickItemConvierte cualquier elemento arbitrario de QtQuick en un objeto de superposición de mapa. MapQuickItem permite especificar objetos de superposición de mapa personalizados.

Diseño Modelo-Vista con objetos superpuestos de mapa

Para generar automáticamente objetos de superposición de mapas basados en el contenido de un modelo QtQuick (por ejemplo, un elemento ListModel ), está disponible el tipo MapItemView. Acepta cualquier objeto de superposición de mapa como delegado y sólo puede crearse dentro de un Map.

Tipos clave

MapItemViewRellena un mapa con objetos superpuestos basados en los datos proporcionados por un modelo.

Interacción con los objetos superpuestos de mapa

Las propiedades de los objetos superpuestos al mapa que influyen en su apariencia en la pantalla pueden modificarse en cualquier momento, y muchas de ellas también pueden utilizarse en animaciones. La animación de objetos superpuestos basados en coordenadas, como MapPolygon y MapPolyline, aún no está disponible.

Geocodificación: de dirección a coordenada y viceversa

La geocodificación es la traducción de coordenadas geográficas en direcciones, o viceversa. Esta traducción suele implicar el envío de los datos de origen a un servidor que realiza la traducción y devuelve los resultados, aunque algunos proveedores de servicios basados en la localización plugins pueden ofrecer algunas funciones de geocodificación sin necesidad de enviar los datos a un servidor remoto. La disponibilidad y precisión de la traducción suele depender de la ubicación o dirección que se esté traduciendo, ya que las distintas zonas de la Tierra están cartografiadas con distintos grados de precisión.

Una consulta de geocodificación en QML se realiza utilizando el tipo GeocodeModel. Para una consulta de dirección a coordenadas, su propiedad query puede establecerse en un objeto Address o en una cadena que contenga la forma textual de la dirección que se desea buscar. Para realizar la consulta inversa, puede establecerse la misma propiedad a una coordenada en su lugar. Los resultados están disponibles en el contenido del modelo.

Tipos de claves

PluginUn plugin de servicios basados en localización proporciona datos que incluyen resultados de traducción de geocodificación que se exponen a los clientes a través de un GeocodeModel.
GeocodeModelConsulta el plugin para las traducciones de geocodificación y proporciona acceso a los resultados a través de índices en el modelo.
AddressDirección estructurada para su uso en consultas y resultados de geocodificación.

Tenga en cuenta que el cliente debe crear un objeto Plugin antes de utilizar un objeto GeocodeModel. Esto permitirá acceder a los servicios de traducción de geocodificación y, por tanto, a los datos que se mostrarán.

Enrutamiento y navegación

El enrutamiento es la determinación de una ruta navegable de un punto a otro en un mapa. Dado un mapa que conoce las características que ayudan o dificultan la navegación, como puentes, vías navegables, etc., puede construirse una serie de segmentos que componen el trayecto. Si estos routeSegments son sencillos, podemos añadir información de navegación en los puntos de conexión, routeManeuvers, entre los segmentos.

Tipos de clave

routeEl trayecto completo por el que se va a navegar.
routeSegmentLos componentes individuales de una ruta.
routeManeuverLa información de navegación que une los segmentos.
RouteModelLos medios para realizar peticiones en el backend para suministrar información sobre la ruta.

© 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.