Geocodificación en GIS

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 geocodifcació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.

Geocodificar en QGIS

Para geocodificar en QGIS tenemos dos opciones: Utilizar el plugin Geocoding o utilizar el plugin MMQGIS. Ambos plugins son de los más recomendables para QGIS.

El primer paso será instalar los plugins. Desde QGIS iremos al menú superior Complementos > Administrar e instalar complementos.

Buscamos los complementos GeoCoding y MMQGIS y los instalamos.

GeoCoding

El complemento GeoCoding realiza geocodificación y geocodificación inversa usando los servicios web de Google y Nominatim. La pega 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

En el menú superior vamos a Complementos > GeoCode > GeoCode.

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

GeoCoding directa

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

Geocodificación inversa

Clic en Complementos > GeoCode >  Reverse GeoCode.

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

GeoCoding inversa

MMQGIS

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

Podemos crear el archivo CSV partiendo de una hoja de cálculo. Crearemos el listado de direcciones con, al menos, los siguientes nombres de columna: Address (dirección completa), City (ciudad), State (Comunidad Autónoma en el caso de España), Country (país).

excel

Guardamos el archivo como texto delimitado por comas (CSV).

El siguiente paso es abrir este archivo CSV con un editor de texto, como Notepad++ o Sublime Text, para modificar su codificación a UTF-8:

codificación
Guardamos los cambios y vamos a QGIS.

Para iniciar el procedimiento, hacemos clic en el menú superior MMQGIS > Geocode > Geocode CSV with  Google / OpenStreetMap:

mmqgis_geocode

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. En UTF-8!.
  • Address Field, City Field, State Field y Country Field: se rellenarán automaticamente, ya que el nombre coincide.
  • Web Service: OpenStreetMap / Nominatim (o Google Maps).
  • Output Shapefile: la ruta y el nombre de la capa que se creará.
  • Not Found Output List: la ruta y el nombre del archivo CSV que se creará con la rutas no codificadas.

mmqgis_geocode_ventana

Aceptamos y esperamos unos segundos para ver el resultado:

resultado

Geocodificación en ArcGIS

En este tutorial de geocodificación en PDF encontrarás las instrucciones necesarias para realizar la geocodifiación con ArcGIS.

Geocodificación en gvSIG

En esta entrada del blog de gvSIG encontrarás unas sencillas instrucciones parea realizar geocodificación en gvSIG 2.1. Es necesario instalar la librería GeoPy y pequeñas nociones de python.

Convierte una tabla con direcciones en una capa de puntos con gvSIG 2.x

Geocodificación en Leaflet

En el visor de la web del curso online desarrollo de aplicaciones webmapping hay un mapa web realizado con Leaflet y entre los diferentes controles que contiene, hay uno en la parte superior, que es un servicio de geocodificación.

Este control consiste en una caja de búsqueda de direcciones. La hemos creado utilizando el plugin Leaflet GeoSearch,

El control nos permite utilizar tres posibles proveedores:

  • L.GeoSearch.Provider.Esri
  • L.GeoSearch.Provider.Google
  • L.GeoSearch.Provider.OpenStreetMap

En esta entrada te mostramos cómo incorporar un plugin a tu mapa de leaflet.

Para crear el control basta con añadir tres líneas en nuestro script:

En Leaflet también podemos utilizar como plugin el geocodificador de OpenCage.

Geocodificar direcciones con Google My Maps

En nuestro blog tenemos un completo tutorial en el que se describe el proceso paso a paso.

Geocodificador online gratuito 🚀

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

Otros servicios de geocodificación

OpenCage Geocoder

Esta API combina varios sistemas de codificación geográfica en su background. Cada una está optimizada para cada parte del mundo y para cada tipo de solicitud.

Se han agregado los resultados de las mejores fuentes de datos abiertas y algoritmos.

 

Soporta geocodificación directa e inversa y es gratuito durante el periodo en el que se encuentre en fase beta, posteriormente también habrá un nivel gratuito.

Geocoder del catastro español

https://github.com/bolollo/geocoder_catastro

Geocodifica direcciones usando los servicios de catastro.

Twofishes

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

Web que recopila y compara docenas de proveedores de servicios de geocodificación para ayudarnos a seleccionar el mejor para nuestros proyecto: https://getlon.lat/

Let’s connect!

Date de alta en nuestra newsletter
y recibe este ebook gratuito

Y una vez al mes recibirás las últimas novedades del sector GIS y de nuestros cursos

12 comentarios en «Geocodificación en GIS»

  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

  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

  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.

    • 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!

  4. Hola,
    quisiera saber cuál es el máximo de registros que puedo geocodificar utilizando los diferentes métodos.

    Saludos

  5. 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!!!

Los comentarios están cerrados.