Geocodificación de direcciones en QGIS

La geocodificación de direcciones consiste en la localización espacial de una dirección específica.

Para realizar geocodificación es necesario contar con una herramienta que realice la búsqueda en una base de datos por su nombre y dirección. Para generar direcciones a partir de lugares conocidos se utiliza la geocodificación inversa.

Algunas de las API que ofrecen estos servicios son las de ESRI, Google Maps, Nominatim (un servicio basado en OpenStreetMap, con limitación en cuanto a cobertura o peticiones) o Geonames.

Geocodificación y geocodificación inversa

La geocodificación es el proceso de asignar coordenadas geográficas a puntos del mapa, es decir, la ubicación en el espacio de una dirección. Por ejemplo, si tenemos un listado de direcciones en formato alfanumérico (tipo y nombre de la calle, número, ciudad, provincia y país) se podrán localizar espacialmente en función de los criterios del software utilizado.

La geocodificación inversa consiste en asignar la dirección de una calle, número de portal, etc a una localización espacial conocida. Por ejemplo, en una capa de puntos podremos rellenar en su tabla de atributos un campo nuevo con sus direcciones.

Comparativa de plugins para la geocodificación en QGIS

La siguiente tabla muestra diferentes complementos de QGIS que admiten geocodificación. Algunos de ellos se centran únicamente en la codificación geográfica, mientras que otros hacen además otras otras funcionalidades:

Nombre del complemento Nº descargas Última versión Directa Inversa Requiere clave API Foco en geocodificación Geocoding API
MMQGIS +355k 2021 Si Si No No Google/OSM/…
Plugin iconGeoCoding +160k 2023 Si Si Si Si OSM, Google
Google Maps Geocoder +145k 2021 Si No Si Si Google
Maptiler +20k 2024 Si No Si No Maptiler
Nominatim Locator Filter +10k 2023 Si Si No Si OSM
TravelTime +13k 2024 Si Si Si No TravelTime
TomTom +2k 2020 Si No Si Si TomTom
OpenCage Geocoder +2k 2023 Si Si Si Si Nominatim

Fuente: Elaboración propia partiendo de los datos de doublebyte.

1. Plugin MMQGIS (recomendado para varias direcciones)

Con más de 350.000 descargas se trata del plugin más popular para realizar geocodificación.

El complemento MMQGIS nos permite geocodificar varias direcciones al mismo tiempo. Solamente es necesario crear un archivo en formato CSV (con la codificación UTF-8).

En este ejemplo vamos a codificar varias direcciones. Para ello necesitamos crear un listado de direcciones y tenerlo en formato CSV.

1.Partiendo de una hoja de cálculo, crearemos en ella el listado de direcciones.

2. Añadimos, al menos, las siguientes columnas con sus nombres:

    1. Nombre.
    2. Address (dirección completa).
    3. City (ciudad).
    4. State (Comunidad Autónoma en el caso de España),
    5. Country (país).
excel

 

3. Guardamos el archivo en formato CSV UTF-8 (delimitado por comas):


4. Guardamos los cambios y abrimos QGIS.

6. Para iniciar el procedimiento de geocodificación de dirección en lotes, hacemos clic en el menú superior MMQGIS → Geocode → Geocode CSV with Web Service:

7. A continuación se abre una ventana con los parámetros que debemos introducir para realizar la codificación con un servicio web. Los parámetros a ingresar serán:

  • Input CSV File: ruta del archivo CSV. Recuerda que debe estar en UTF-8.
  • Address, City, State y Country: se rellenarán automaticamente, ya que el nombre coincide.
  • Web Service: Podemos elegir entre varias opciones: Google, OpenStreetMap / Nominatim, UE Census Bureau, ESRI Server o NetToolKit. Nosotros seleccionaremos OpenStreetMap / Nominatim
  • Output Dile Name: la ruta y el nombre de la capa que se creará en un formato GIS vectorial a elegir. Escogeresmo el formato geoJSON.
  • Not Found Output List: la ruta y el nombre del archivo CSV que se creará con la rutas no codificadas.

Aplicamos y esperamos unos segundos para ver el resultado. Se añade la capa lugares al canvas de QGIS. Si hacemos clic con el botón identificar obtenemos la infroamción que teníamos en el listado CSV, deesta forma ahora disponemos de unos lugares correctamente georreferenciados:

2. Plugin GeoCoding (recomendado para geocodificación  puntual)

Plugin icon El complemento GeoCoding permite a los usuarios buscar direcciones y obtener sus direcciones (geocodificación) usando los servicios web de Google y Nominatim. También permite obtener la dirección de un punto haciendo clic en el mapa (geocodificación inversa).

El principal inconveniente de este plugin es que sirve para realizar geocodificación puntual, ya que el proceso es muy manual, mostrando los registros uno por uno.

Geocodificación

Una vez instalado, en el menú superior vamos al menú superior Complementos → GeoCoding → GeoCoding.

En la ventana que se abre, escribimos una dirección:

En el caso de encontrar varias ubicaciones posibles, se muestra un desplegable para seleccionar la dirección exacta. Una vez seleccionada, se añadirá un punto en QGIS:

En la imagen se muestra QGIS con un mapa base de OpenStreetMap (se ha añadido utilizando el complemento QuickMapServices).

Geocodificación inversa

En este caso haremos clic en el menú Complementos → GeoCoding →  Reverse GeoCoding.

El usuario debe hacer clic en un lugar del mapa y esperar para obtener la dirección en una ventana emergente:

3. Plugin OpenCage Geocoder

El complemento de QGIS OpenCage Geocoder es un complemento de procesamiento que ofrece geocodificación directa e inversa dentro de QGIS. Al ser un complemento de procesamiento, se beneficia de muchas funciones que ya están desarrolladas, como el procesamiento por lotes/asincrónico, la integración con el modelador o la capacidad de ejecutarse en la consola de python. También cuenta con una interfaz de usuario estándar, con entradas, salidas, opciones y comentarios que deberían ser familiares para los usuarios de QGIS.

Este complemento se basa en la API de geocodificación de OpenCage y la API que ofrece geocodificación en todo el mundo en función de diferentes conjuntos de datos.

Si bien es cierto que OpenCage hace un uso extensivo de Nominatim, debemos mencionar que contribuyen a respaldar el proyecto, tanto en términos de financiamiento como de código real.

one API, many geocoders

En este artículo, te enseñamos a realizar la geocodificación con QGIS y OpenCage.

Geocoded results on map in attribute table

Otros servicios de geocodificación fuera de QGIS

Geocoder del catastro español

https://github.com/bolollo/geocoder_catastro

Geocodifica direcciones usando los servicios de catastro.

Geocodificador online gratuito 🚀

En esta entrada te mostramos cómo utilizar este geocodificador gratuito creado por LocalFocus.

Twofishes

Basado principalmente en los datos de Geonames, Twofishes nos permite realizar geocodificación directa e inversa. Es el servicio que utiliza foursquare.

12 comentarios en «Geocodificación de direcciones en QGIS»

  1. Buenos días.
    Me ha resultado muy interesante este artículo, puesto que en un trabajo que estoy realizando dispongo de un CSV con un gran listado de direcciones.
    Mi pregunta es, si una vez que el programa marca en el plano la posición de dichas direcciones mediante un icono(estrella en este caso), ¿ es posible desplazar la ubicación de ese icono, para que coincida exactamente con un punto de la calle que nosotros deseemos, en lugar de con el centro/interseccion de la calle?

    Gracias y muy buen blog

    Responder
  2. Tengo subido nominatim en un servidor para geocoding, pero quisiera saber si es posible integrar los formatos SHP (arcgis) ó TAB (mapinfo). para mi nominatim.

    Gracias

    Responder
  3. Buen día Aurelio, tengo una duda que intentó resolver, soy seguidor de tu blog desde hace tiempo, tengo información puntual con coordenadas, son más de 2 mil puntos, lo que quisiera saber, si hay un modo de realizar geocodificacion inversa a dichos puntos sin necesidad de hacerlo manualmente con cada uno de ellos. Por favor, espero tu respuesta.

    Responder
    • Buen día Juan Carlos,
      Muchas gracias por ser seguidor nuestro!
      De los plugins mencionados en el artículo ninguno realiza geocodificación inversa de forma masiva. Desconocemos si existe alguna herramienta para ello en QGIS. Saludos!

      Responder
  4. Hola, quisiera hacer una consulta si alguien puede ayudarme. Necesitaria geocodificar una ruta, trazada por mi, cada un km. Una persona me explico mas o menos como se geocodifica en ArcGis. Pero actualmente estoy trabajando con QGis. Supongo se hara con geocode from street layer. Pero no consigo hacerlo. Agradeceria su resp. Muchas GRACIAS!!!

    Responder

Deja un comentario