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.
Índice
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/… |
GeoCoding | +160k | 2023 | Si | Si | Si | Si | OSM, Google |
Google Maps Geocoder | +145k | 2021 | Si | No | Si | Si | |
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:
-
- Nombre.
- Address (dirección completa).
- City (ciudad).
- State (Comunidad Autónoma en el caso de España),
- Country (país).
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)
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:
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.
En este artículo, te enseñamos a realizar la geocodificación con QGIS y OpenCage.
Otros servicios de geocodificación fuera de QGIS
Geocoder del catastro español
https://github.com/bolollo/
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
Licenciado en Geografía. Máster en Sistemas de Información Geográfica. Consultor GIS desde el año 2004. En MappingGIS desde el año 2012 para ayudarte a impulsar tu perfil GIS y diferenciarte de la competencia. Echa un vistazo a todos nuestros cursos de SIG online.
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
Muchas gracias Daniel,
Efectivamente, una vez geolocalizados los puntos puedes editarlos y desplazarlos al lugar exacto si lo conoces.
Un saludo!
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
Me ha resultado muy fácil y sin nada de programación con QGIS, muchas gracias!
Hola Juan Carlos, Nos alegramos de que el artículo te haya resultado útil, Saludos!
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!
Hola,
quisiera saber cuál es el máximo de registros que puedo geocodificar utilizando los diferentes métodos.
Saludos
Hola María José, La mayoría de los servicios te permitirán geocodifircar varias direcciones, excepto el plugin de QGIS «GeoCoding». Saludos!
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!!!
Gracias por tus explicaciones, me han aportado información muy valiosa para mi trabajo.
gracias Aurelio, es una gran oportunidad para progresar en este campo