Title Image

Blog

Obtener datos geográficos libres mediante Overpass Turbo

  |   Geolocalización, SIG, Tratamiento de datos

OpenStreetMap (OSM) dispone de un conjunto de datos enriquecidos con más información de la que se puede pensar a simple vista. Visitar la entrada Map Feature en la wiki del proyecto da una idea de la taxonomía utilizada para describir cada uno de los elementos que se recogen en sus base de datos y poder ver que son cientos de etiquetas las que ayudan a describir casi cualquier tipo de elemento potencialmente cartografiable.

En esta entrada mostraremos algunos sencillos ejemplos sobre cómo extraer esos datos utilizando la API de Overpass. Esta API permite consultar los datos de OSM por los criterios de búsqueda que deseemos mediante un lenguaje de consulta diseñado específicamente para ello.

Tabla de claves y valores para la modelización de elementos en OpenStreetMap

Tabla de claves y valores para la modelización de elementos en OpenStreetMap

Realizaremos unas consultas sobre los datos geográficos que almacena OSM definiendo unos elementos con unas características determinadas y situados en un área concreta. La API acepta dos lenguajes de consulta: Overpass QL y Overpass XML. La primera es una versión simplificada del lenguaje de consulta XML.
Por otra parte, Overpass Turbo es una interfaz basada en web donde podemos ejecutar cualquier tipo de consulta Overpass y mostrar los resultados en un mapa interactivo o directamente descargarlos a nuestro ordenador.

La interfaz de Overpass Turbo es muy sencilla. Se componen de un menú con ocho botones, una sección en el lado izquierdo para introducir nuestra consulta y un visor de mapa a la derecha donde se mostrará el resultado de nuestra petición. Veamos algunos sencillos ejemplos que muestran el potencial de lo que podemos llegar a hacer con Overpass.

La interfaz Overpass Turbo.

La interfaz Overpass Turbo.

El primer paso será encontrar la clave y valor que define el o los elementos que queremos localizar y delimitar el área de búsqueda. Para ello, si desconoces el par clave:valor te sugiero que visites la siguiente tabla de elementos publicada en la wiki de OSM. Ya adelanto que no se encuentran todos, pero si están presentes una buena parte de ellos. Estas lista es un buen punto de partida para conocer la ontología presente en OpenStreetMap y poder bucear por la wiki de OSM para buscar aquella etiqueta y valor que se adapte a las características del elemento que necesitamos encontrar y que no está presente en este listado.

La semántica básica de la API de Overpass se fundamenta en flujos de datos provenientes de OpenStreetMap (nodos, vías y relaciones), los cuales son generados y modificados mediante declaraciones, que se ejecutan una tras otra.

Encontrar algo en la base de datos de OpenStreetMap significa siempre buscar por un lugar o por valores de ciertas etiquetas. En este último caso buscamos unos objetos de tipo punto (type=»node») y con un nombre específico: el valor del nombre clave será BBVA (k=»name» v=»BBVA»). La etiqueta print nos permite visualizar en el mapa todos los elementos encontrados.

<osm-script>
  <query type="node">
    <has-kv k="name" v="BBVA">
  </has-kv></query>
  <print>
</print></osm-script>

Si pulsamos en el botón Ejecutar Overpass Turbo resalta en el mapa de la izquierda aquellos elementos que cumplen con el criterio de consulta que hemos introducido: nos muestra la implantación geográfica del banco BBVA en todo el mundo recogida en OpenStreetMap.

Resultado de una consulta con Overpass Turbo: oficinas bancarias de BBVA en el mundo.

Resultado de una consulta con Overpass Turbo: oficinas bancarias de BBVA en el mundo.

Si el número de elementos encontrados en la consulta es elevado quizá nos interese delimitar el área geográfica de búsqueda. Para ello especificamos el bounding box (bbox-query) o área mínima de búsqueda delimitada por dos pares de coordenadas para la esquina superior derecha e inferior izquierda. El resultado es este.

<osm-script>
  <query type="node">
    <has-kv k="name" v="BBVA"/>
    <has-kv k="amenity" v="bank"/>
    <bbox-query e="-3.00" n="43.60" s="42.20" w="-4.50"/>
  </query>
  <print/>
</osm-script>

El número de resultados es amplio pero es posible que algunos locales estén representados en OpenStreetMap como polígonos y por lo tanto no aparecerán en el mapa debido a que solo estamos buscando puntos. Añadamos, pues, la misma consulta pero esta vez para todo tipo de objetos con determinada etiqueta presentes dentro de un cuadro delimitador. Será necesario repetir la etiqueta para cada tipo de primitiva y utilizar el operador union.
Recuerda que OSM modela la realidad a través de tres tipos de elementos básicos:

  • Los nodos (nodes). Son puntos en el espacio y disponen de información sobre su ubicación.
  • Las vías (ways). Son listas de nodos ordenados. Pueden describir características lineales, como las carreteras, caminos y vías fluviales y también se pueden cerrar para crear áreas.
  • Las relaciones (relations). Son listas de primitivas, incluyendo otras relaciones y permiten modelar las características que no se pueden describir utilizando un único nodo o forma.

Además, con case=»ignore» indicamos que nuestra búsqueda sea insensible a caracteres en mayúsculas y utilizamos la expresión regular regv=»bbva» para conseguir nombres aproximados. En este caso, la consulta requerirá de un tiempo.

<osm-script>
 <union>
  <query type="node">
    <has-kv case="ignore" k="name" regv="bbva"/>
    <has-kv k="amenity" v="bank"/>
    <bbox-query e="-3.00" n="43.60" s="42.20" w="-4.50"/>
  </query>
   <query type="way">
    <has-kv case="ignore" k="name" regv="bbva"/>
    <has-kv k="amenity" v="bank"/>
    <bbox-query e="-3.00" n="43.60" s="42.20" w="-4.50"/>
  </query>
   <query type="relation">
    <has-kv case="ignore" k="name" regv="bbva"/>
    <has-kv k="amenity" v="bank"/>
    <bbox-query e="-3.00" n="43.60" s="42.20" w="-4.50"/>
  </query>
 </union>
 <print/>
</osm-script>
En la esquina inferior derecha del mapa Overpass Turbo contabiliza los elementos encontrados según cada tipo.

En la esquina inferior derecha del mapa Overpass Turbo contabiliza los elementos encontrados según cada tipo.

Si pulsas el botón Exportar, Overpass Turbo te da la posibilidad de guardar el resultado en diferentes formatos, entre ellos geoJSON o KML.

En Overpass Turbo tienes la posibilidad de exportar el resultado de tu consulta a diferentes formatos.

En Overpass Turbo tienes la posibilidad de exportar el resultado de tu consulta a diferentes formatos.

Por último, y para finalizar esta entrada, también podemos encadenar consultas a través de Overpass para conseguir elementos recogidos en OpenStreetMap que satisfagan un segundo criterio de búsqueda, en este caso espacial. El ejemplo de abajo busca cajeros automáticos en un radio de 200 metros alrededor del Museo de la Evolución Humana de la ciudad de Burgos.

<osm-script>
 <query type="way"> 
  <has-kv k="tourism" v="museum"/> 
  <has-kv k="name" v="Museo de la Evolución Humana"/> 
 </query> 
 <query type="node"> 
  <around radius="200"/> 
    <has-kv k="atm" v="yes"/>
 </query> 
 <print/>
</osm-script>

Puedes consultar esta guía con una gran cantidad de ejemplos sobre consultas realizadas con la API de OverPass.



Este sitio web utiliza cookies propias y de terceros para su correcto funcionamiento y visualización por parte del usuario, así como la recogida de estadísticas. Si continúa navegando, consideramos que acepta su uso. Más información

Las opciones de cookie en este sitio web están configuradas para "permitir cookies" con el fin de ofrecerle una mejor experiencia de navegación. Si sigue utilizando este sitio web sin cambiar sus opciones o haces clic en "Aceptar" estarás consintiendo las cookies de este sitio. Las cookies son archivos que se pueden descargar en su equipo a través de las páginas web. Son herramientas que tienen un papel esencial para la prestación de numerosos servicios de la sociedad de la información. Entre otros, permiten a una página web almacenar y recuperar información sobre los hábitos de navegación de un usuario o de su equipo y, dependiendo de la información obtenida, se pueden utilizar para reconocer al usuario y mejorar el servicio ofrecido.

La web altergeosistemas.com utiliza Google Analytics, un servicio de analítica web desarrollada por Google, que permite la medición y análisis de la navegación en las páginas web. A través de la analítica web se obtiene información relativa al número de usuarios que acceden a la web, el número de páginas vistas, la frecuencia y repetición de las visitas, su duración, el navegador utilizado, el operador que presta el servicio, el idioma, el terminal que utiliza. Información que posibilita un mejor y más apropiado servicio por parte de este portal. Google Analytics no se usa para localizar o recabar información personal identificable de los visitantes del sitio.

Usted puede restringir, bloquear o borrar las cookies de esta o cualquier otra página web utilizando su navegador. En cada navegador la operativa es diferente, la función de "Ayuda" le mostrará cómo hacerlo. Además, también puede gestionar el almacén de cookies en su navegador a través de herramientas especiales.

Cerrar