Descarga y utilización de datos de OpenStreetMap¶

Contenidos:
Introducción¶
OpenStreetMap, OSM, es la mayor base de datos geográfica de libre acceso que existe. Comenzó su andadura en 2004 de la mano de Steve Coast. La información la introducen y mantienen actualizada usuarios voluntarios de todo el mundo. Toda la información de la base de datos es de libre acceso y utilización. A la fecha de escribir estas notas había más de dos millones y medio de usuarios registrados y el volumen de información almacenado era de unos 50 Gigabytes en formato comprimido. Por ejemplo, el número de nodos almacenados a la fecha era de unos 3.350 mil millones.


Flujo de trabajo¶
El flujo de trabajo con datos procedentes de OpenStreetMap suele seguir las siguientes fases (ver figura ):
- 1.- Descarga de datos brutos de OSM: en primer lugar se trata de obtener los datos existentes en la base de datos de OpenStreetMap correspondientes a la zona que estemos estudiando. Normalmente se obtienen todos los datos de una determinada zona en algunos de los formatos que nos ofrece OSM. El más habitual es el formato .osm, que es un formatos XML.
- 2.- Procesamiento de datos brutos y extracción de los elementos de interés: Habrá que extraer de los ficheros obtenidos de la base de datos, los elementos en los que estemos interesados. Si por ejjemplo estamos haciendo un estudio acerca de las carreteras de una zona, habrá que extraer todos los elementos deltipo Node, Way o Relation que tengan información acerca de las carreteras.
- 3.- Conversión a otros formatos vectoriales: normalmente trabajaremos en un programa GIS o conuna base de datos. Los datos que nos interesan y que hemos extraido en la fase anterior habrá que convertirlos al formato en el que tengamos pensado trabajar. Puede ser un formato vectorial como el shapefile o quizás haya que importarlos desde la base de datos con la que pensemos hacer el análisis.
- 4.- Procesamiento y cálculos: una vez se dispone de los datos en nuestro formato de trabajo, realizaremos los cálculos y operaciones de análisis espacial que nos interesen.
- 5.- Salida gráfica o alfanumérica de los resultados: por último, habra que plasmar los resultados de nuestro trabajo en forma gráfica o mediante los informes correspondientes.

A día de hoy hay muchas herramientas que pueden ser utilizadas en cada una de las fases descritas. En este taller vamos a dar algunas ideas de cómo utilizar algunas de ellas. Existen en la red numerosos documentos que han servido para la preparación de esta documentación y que pueden ser consultadas para ampliar la información que aquí se explica.
# primitivas
Estructura de la información en OSM¶
OSM es una base de datos de información geográfica. Los elementos o fenómenos existente en la realidad se modelizan mediante la incorporación de dos niveles de información:
- Información espacial: contiene la información relativa a la geometría y posición del fenómeno. Responde a la pregunta ¿Dónde?
- Información temática: contiene las características y propiedades del fenómeno. Responde a la pregunta ¿Qué?
En la base de datos de OSM a cada fenómeo de la realidad que se quiera modelar se le asigna una primitiva geométrica que le dota de la información espacial. Hay tres tipos de primitivas geométricas:
- Nodes: corresponden a la definición de un punto
- Ways: corresponden a la definición de una línea o de un polígono.
- Relations: combinan Nodes, Ways y otras Relations para definir geometrías o elementos complejos
La información temática se modela mediante etiquetas, tags, que son parejas de cadenas de texto en la forma key-value. Cada primitiva geométrica asociada a un fenómeno de la realidad llevará asociadas un número indeterminado de etiquetas que permitirán definir su información temática. Se pueden consultar las etiquetas más frecuentes en la página:
http://wiki.openstreetmap.org/wiki/Map_Features
Node¶
Un Node representa una geometría puntual. Son los únicos elementos que tienen coordenadas. Un ejemplo de un Node en formato OSM:
<node id="25496583" lat="51.5173639" lon="-0.140043" version="1" changeset="203496"
user="80n" uid="1238" visible="true" timestamp="2007-01-28T11:40:26Z"/>
<tag k="highway" v="traffic_signals">
</node>
Way¶
Representa una geometría de Linestring. Consta de una lista de Nodes identificados por su Id y una lista de etiquetas. Un ejemplo de Way en formato OSM:
<way id="5090250" visible="true" timestamp="2009-01-19T19:07:25Z" version="8"
changeset="816806" user="Blumpsy" uid="64226">
<nd ref="822403"/>
<nd ref="21533912"/>
<nd ref="821601"/>
<nd ref="21533910"/>
<nd ref="135791608"/>
<nd ref="333725784"/>
<nd ref="333725781"/>
<nd ref="823771"/>
<tag k="highway" v="residential"/>
<tag k="name" v="Clipstone Street"/>
<tag k="oneway" v="yes"/>
</way>
Si el último punto de un Way coincide con el primero, entonces se trata de una línea cerrada. Según el valor de las etiquetas puede tratarse de un area o simplemente deuna línea cerrada.
Relation¶
Sirven para representar entidades más complejas. Consta de una lista de elementos member cada uno de los cuales tiene su type, su id y su role, y una lista de etiquetas. Las Relations aceptadas por los renderers se pueden consultar en:
http://wiki.openstreetmap.org/wiki/Types_of_relation
Una Relation de uso común es la multipolygon, con sus roles outer e inner que permite definir edificios u otras superficies con huecos. Un ejemplo sería:
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="inner" />
</relation>

Hay combinaciones más complejas de multipolygon. La Relation multipolygon se puede consultar en el siguiente enlace:
Descarga de datos desde OpenStreetMap¶
Los Datos del mapa de OpenStreetMap, se pueden descargar de varias formas. El mapa entero son una enorme cantidad de datos (unos 50 Gb en formato comprimido). Se recomienda empezar con una región pequeña y determinada para asegurarse que el proceso funciona correctamente.
OpenStreetMap es un proyecto federativo. Esto significa que gran cantidad de sus recursos esenciales, son suministrados por terceras partes. Sea valiente, trate de descargar de estos lugares en primer lugar. Los servidores oficiales, no son grandes centros de datos y por lo tanto no disponen de grandes recursos. Se dedican principalmente a mantener el flujo de datos.
OSM File formats¶
La información de OSM se puede obtener en diversos formatos. Los más importantes son:
- OSM XML – xml- es el formato proporcionado por la API
- PBF Format – es un formato binario comprimido
- o5m – es un formato binario para alta velocidad de proceso.
- OSM JSON – es una variante JSON para el formato OSM
- Level0L - un lenguaje más fácil de leer y con menos redundancia que el XML
Se puede ampliar la información acerca de los formatos de datos utilizados por OSM en el siguiente enlace: OSM file formats
Planet: Todos los datos de una vez¶
Planet.osm contiene todo el planeta. Es un archivo que se actualiza normalmente cada Miercoles. Son alrededor de 50 GB comprimidos.
El histórico contiene todos los objetos con toda su información de modificaciones y es mucho más grande.
Varios extractos permiten descargar archivos de tamaños más manejables, desde continentes enteros a partes de paises. Hay distintas herramientas que se pueden utilizar después para extraer datos específicos de estos archivos.
Un portal donde se pueden conseguir conjuntos grandes de datos agrupados por continentes, países o provincias es Geofabrik. El enlace al portal de Geofabrik es:
Geofabrik ofrece los conjuntos de datos en formato .osm y también en formato .shp.
Pequeñas Cantidades de datos¶
API de OpenStreetMap¶
Existe una API que se puede utilizar para pequeñas descargas. Hay que tener en cuenta que el uso de la API (especialmente la descarga de zonas) está sujeta a una política de uso. No se recomienda utilizar directamente la API de OSM. Para descargas de zonas grandes (o respuestas a muchos usuarios a la vez) deben usarse alguno de los métodos que se señalan a continuación.
Directamente desde el mapa¶
Para obtener los datos correspondientes a una zona pequeña se puede utilizar la pestaña Export, en la página principal de OpenStreetMap, se puede seleccionar un trozo del mapa y descargar datos en varios formatos, incluido OSM XML. Sólo funciona en niveles de zoom grandes.
JOSM¶
JOSM proporciona una interface amigable para la descarga de datos de un área determinada que desee visualizar de forma inmediata. Podrás editar estos datos y subirlos nuevamente. Podrás guardar los datos en un archivo en formato .osm para futuros procesos. Sin embargo, al emplear la API principal, no se pueden descargar áreas extensas con este método.
QGIS¶
Las últimas versiones del programa GIS de escritorio QGIS ya incorporan un plugin que permite acceder a la descarga de los datos de OpenStreetMap de una determinada zona. Es una de las opciones más interesantes existentes a día de hoy.
Overpass API¶
Overpass API permite descargar áreas determinadas, elementos con tags específicos, redes de transporte público, redes fluviales o cualquier otro tipo de entidad. Esta descarga selectiva de determinados elementos dentro del area de interés, hace que estas herramientas sean muy interesantes.
Desde lenguajes de programación¶
La utilización de datos de OSM en nuestros programas es posible accediendo directamente a descargas de datos desde distintos servidores. Existen interfaces específicos para distintos lenguajes como Java, Python o Javascript. También es posible utilizar peticiones HTTP genericas a través de Overpass API y procesar los datos obtenidos por nuestros medios.
Elegir la Región de descarga¶
La región se especifica mediante un area rectangular que se denomina bounding box. Para definir el bounding box se dan las coordenadas de la esquina inferior izquierda y la esquina superior derecha, que corresponden a los valores máximos y mínimos de la longitud y latitud de la zona rectangular.
Hay que elegir la región más pequeña posible que sea de utilidad, ya que regiones más grandes generan archivos mayores, mayores tiempo de descarga y ocupación del servidor.
Cuando se está empezando, es mejor empezar por regiones pequeñas para entender como funciona con pequeños conjuntos de datos.
Hay varias formas en encontrar los valores de latitud y longitud. Si está interesado en una zona en concreto, quizás la forma más clara de ver esto, es desde la página principal del mapa. Iniciada sesión con nuestra cuenta, haremos zoom y encuadre hasta tener en pantalla la zona en la que estamos interesados. Al pulsar la pestaña EXPORTAR, aparece una caja con los cuatro valores que definen la extensión del área de descarga y que coincide exactamente con lo que estas viendo en pantalla del mapa en ese momento.
Si la descarga la vamos a hacer directamente desde el mapa, podemos en ese momento hacer Click en ‘Seleccionar manualmente un área diferente‘ y entones dibujar un área para seleccionar exactamente la región deseada.
Otra manera de localizar las coordenadas de la zona que queremos descargar es abrir la página Web http://www.informationfreeway.org/ y hacer zoom a la zona de interés. En la parte inferior derecha de la pantalla aparecen las coordenadas correspondientes a’la posición del ratón. Se tratará de anotar las correspondientes a las esquinas del area en el que estemos interesados.
JOSM¶
JOSM (Java Openstreetmap Editor) es el editor de referencia actualmente para visualizar, modificar y actualizar los datos de OpenStreetMap. Se trata de un programa de escritorio escrito en Java con el que se puede editar, en formato vectorial, la información de una determinada zona del mapa OSM, tanto las geometrías como las etiquetas. Fue desarrollado por Immanuel Scholz y actualmente está mantenido por Dirk Stöcker.
Existen versiones de JOSM para los diferentes sistemas operativos. Se pueden descargar desde el portal de JOSM:
Para su funcionamiento se requiere tener instalado en su ordenador Java 7.
A pesar de que tiene una curva de aprendizaje relativamente pronunciada, JOSM es muy popular entre los editores experimentados por su estabilidad y por las posibilidades que ofrece gracias en gran parte a sus componente externos, que extiende en gran manera sus capacidades de edición.
Existen otros editores de datos de OpenStreetMap, como iD, Potlatch 2 o Merkaator.
JOSM está traducido al español. Puedes ayudar a la comunidad en esta tarea desde Launchpad.
El interface gráfico presenta a la izquierda una barra de herramientas y el mapa vectorial con la información de la zona descargada; en la parte derecha hay una serie de ventanas con información acerca de las capas descargadas, información temática del elemento seleccionado y otras.

El programa es muy completo y permite multitud de opciones. Se pueden dibujar nuevos elementos (Nodes, Ways, Relations). Se pueden editar o modificar los existentes. Se pueden descargar zonas desde los servidores de OSM o también abrir ficheros .osm con la información que queremos editar.
La mayoria de las opciones permiten atajos de teclado, algunos de los cuales conviene memorizar para operar con velocidad. Puedes encontrar una buena chuleta con los atajos de teclado en el siguinete enlace:

Configuración¶
Tras instalar el programa conviene hacer algunos ajustes en la ventana de configuración. Para acceder a las diferentes opciones de configuración hay que seleccionar la opción del menú Edit->Preferences o bien pulsando la tecla F12.
Usuario y contraseña¶
Si queremos que las modificaciones que hagamos en los datos OSM se actualicen en los servidores de OpenStreetMap, tenemos que decirle al programa nuestro usuario registrado de OSM.

Edición en remoto¶
Desde la ventana del mapa de OpenStreetMap, cuando elegimos la opción editar, nos da la opción de editar con Id, directamente en la Web, pero también podemos editar desde JOSM. Para ello tenemos que habilitar la opción de control remoto de JOSM. De esta manera, cuando solicitemos editar en el mapa de ÔpenStreetMap, la porción de mapa que estemos viendo en ese momento se descargará en JOSM y podremos editarla desde ahí

Complementos para JOSM (Plugins)¶
Existen numerosos complementos desarrollados por colaboradores de OSM que agregan nuevas funcionalidades a JOSM. La forma más sencilla de instalar estas extensiones es desde el menú Editar -> Preferencias -> Pestaña Complementos y marcar aquellos componentes que desees agregar a JOSM. Puedes consultar la lista de complementos disponibles desde la propia ventana de configuración de JOSM o también visitando el siguiente enlace:
Material de aprendizaje¶
La web learnosm.org proporciona diversos manuales de iniciación y para usuarios avanzados que permiten aprender a utilizar el editor JOSM

Descarga de datos OSM desde JOSM¶
JOSM ofrece varias opciones para descargar datos desde OSM, todas ellas accesibles desde la opción de menu File:
- Desde los servidores de OSM: Opción de menú File -> Download from OSM. Se puede seleccionar una región en el mapa, también se pueden indicar las coordenadas de las esquinas del bounding box que queremos descargar, se puede indicar que se descarguen los datos alrededor de un elemento identificado a través de Nominatim o también seleccionar una serie de tiles por su numeración.
- Mediante una query Overpass API: Opción de menú *File -> Download from Overpass API. Permite descargar los datos correspondientes a un petición en el lenguaje de la Overpass API
- Objeto: Opción de menú File -> Download object. Se puede descargar un objeto concreto indicando el tipo de objeto (Node, Way o Relation) y su identificador ID.
- Notas: Opción de menú File -> Download notes in current view. Permite acceder a las notas que los usuarios de OSM hayan hecho en la parte del mapa que se visuaiza en el editor.
- Parent ways/Relations: Opción de menú File -> Download parent ways/relations. Permite descargar los elementos OSM relativos al que esté seleccionado en el editor.
Además, JOSM permite abrir y editar cualquier fichero en formato OSM proveniente de descargas realizadas por otros procedimientos.
Exportación de datos desde JOSM¶
Una vez editados los datos con JOSM podemos subirlos a los servidores de OSM, para que queden reflejadas las modificaciones que se hayan hecho, pero también podemos guardarlos en un fichero de disco para su edición posterior o su procesamiento con otros programas.
La opción de menú para guardar la información en disco es File -> Save as. Se puede elegir entre varias opciones para guardar la información:
- GPX
- GeojSON
- Note files (.osn)
- OSM server files: .osm, .osm.bz2, .osm.bz, .osm.gz
- GeojSON proyectado: .proj.geojson
QGIS¶
Las últimas versiones de QGIS traen instalado por defecto el plugin que permite descargar datos desde OSM. Podemos acceder a él en la opción de menú Vectorial -> OpenStreetMap -> Descargar datos. Habrá que indicar las coordenadas de las esquinas del bounding box que queremos descargar o bien indicarle que descargue los datos correspondientes al area de pantalla visible en ese momento.
Una forma de seleccionar que bounding box queremos descargar puede ser elegir sobre las ortofotografías de la zona. Para ello, indicaremos a QGIS que queremos añadir una capa tipo WMS y buscaremos, en la ventana de selección que nos ofrece el programa, el servicio de mapas que queremos utilizar. En este ejemplo estamos utilizando la capa de ortofotografias PNOA de máxima actualidad procedentes del IGN. El resultado, tras cargar la capa y seleccionar el area buscado se puede ver en la imagen siguiente:

Nota: En caso de dificultad para encontrar la capa del PNOA, se puede utilizar directamente la siguiente url:
A continuación procederemos a descargar los datos OpenStreetMap de la zona a un fichero en formato .osm. Tendremos que asignarle un nombre y ubicación al fichero y, tras aceptar, el fichero con los datos de OpenStreetMap quedará guardado en el disco en formato OSM.
Lo siguiente es abrir el fichero con QGIS. Para ello hay que seleccionar la opción ‘Añadir capa vectorial‘ y buscar el fichero que hemos descargado. Veremos que nos ofrece varias capas para seleccionar, según se ve en la figura siguiente:

Podemos seleccionar solo alguna de ellas o pulsar en ‘seleccionar todo‘, con loque cargaremos todas las capas en QGIS.
A partir de ahí, podremos disponer de cada una de las capas para operar con ellas, visualizarlas, editarlas, editar su tabla de atributos, hacer búsquedas de elementos concretos a partir del valor de alguna de las etiquetas y cualquier otra acción que se pueda realizar sobre una capa vectorial.

Seleccionar objetos espaciales por filtro¶
Una posibilidad es seleccionar una serie de elementos de una de las capas a partir del valor de alguna de las etiquetas. Una vez seleccionadas, podremos grabarlas de manera independiente en formato shapefile, por ejemplo. Esto se hace aplicando un filtro en la tabla de atributos de la capa y luego seleccionando la opción de menu ‘Capa -> save as‘, sin olvidarnos de activar el checking ‘guardar solo los objetos espaciales seleccionados‘
Desde la misma opción de menú ‘Guardar como‘ podemos seleccionar otros formatos, como sqlite, geojson, Autocad DXF, CSV, Microstation, DBF, GPX y otros.
Por ejemplo, si lo guardamos en formato DBF o CSV podremos abrir luego los datos con la hoja de cálculo.
Exportar a Postgis¶
Podemos exportar los datos a Postgis. Para ello tendremos que abrir conexión con una base de datos Postgis existente mediante el explorador situado a la izquierda de la pantalla.
Overpass API¶
Overpass API permite hacer consultas a la base de datos de OSM por distintos criterios de búsqueda. Tiene su propio lenguaje. El flujo de datos funciona a modo de tubería, el resultado de cada operación se envía al siguiente comando que lo procesa y vuelve a envíar al siguiente, y así sucesivamente.
El portal de Overpass-API ofrece información acerca del lenguaje yotras herramientas que seponen a disposición. La dirección del portal es: http://overpass-api.de/index.html
- Las sentencias de Overpass API las podemos probar en el siguiente portal::
- http://overpass-api.de/query_form.html.
En este portal podemos obtener ademas las salidas como programa OpenLayers.
También podemos probarlas y ver la salida gráfica en el portal:
http://overpass-turbo.eu/#
También podemos utilizar el comando linux wget con la siguiente estrutura:
wget -O file.osm "http://overpass-api.de/api/interpreter?data=sentencia_overpass_api"
Mediante peticiones GET o POST, podemos realizar las consultas desde cualquier lenguaje de programación.
El siguiente ejemplo es una query que genera un flujo de datos con todos los Nodes contenidos en un determinado bounding box y los envía a la salida estándar:
node(41.9837,2.8243,41.9866,2.8307);out;
Veamos otro ejemplo. Vamos a filtrar los datos de la sentencia anterior de modo que nos quedemos solo con los nodos que tienen determinado valor en una etiqueta,por ejemplo, los nodos con la etiqueta amenity=restaurant:
node(41.9837,2.8243,41.9866,2.8307)[amenity=restaurant];out;
El bounding box se especifica como: (minLat, minLon, maxLat, maxLon).
Otro ejemplo en el que solicitamos un Node con un Id determinado:
node(4129698657);out;
También podríamos pedir los Nodes que se encuentran a una determinada distancia de un punto de coordenadas conocidas:
node(around:100.0,41.9837,2.8243);out;
Podemos hacer la unión de dos queries poniéndolas entre paréntesis y separadas por ‘;’. Por ejemplo, la siguiente sentencia solicita los Nodes con ‘amenity=restaurant’ o ‘amenity=pub’:
(node(41.9837,2.8243,41.9866,2.8307)[amenity=restaurant];node(41.9837,2.8243,41.9866,2.8307)[amenity=pub]);out;
Hay multitud de combinaciones que permiten hacer todo tipo de consultas selectivas. Se puede consultar la documentación completa del lenguaje en el siguiente enlace:
http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#By_element_id
ogr2ogr¶
Se puede utilizar GDAL para convertir ficheros .osm en capas shapefile. Suponiendo que tengamos un fichero .osm llamado ‘m607.osm’, el comando para extraer las capas shapefile será:
ogr2ogr m607 -f "ESRI Shapefile" m607.osm
La estructura del comando es:
ogr2ogr destination_file_name -f "ESRI Shapefile" source_file_name
Elresultado será un directorio de nombre ‘destination_file_name’ que tendrá varias capas shapefile con los datos del fichero osm: points.shp, lines.shp, multilinestrings.shp, multipolygons.shp
Osm4j¶
Es una librería java para acceder y manipular la infromación procedente de OpenStreetMap. El código fuente de la librería se puede consultar en :
https://github.com/topobyte/osm4j-core
La documentación del API se encuentra en:
http://www.topobyte.de/projects/osm4j/
Data model¶
OsmEntity¶
- getId()
- getMetadata()
- getNumberOfTags()
- getTag()
OsmNode¶
- getLatitude()
- getLongitude()
OsmWay¶
- getNumberOfNodes()
- getNodeId()
OsmRelation¶
- getNumberOfMembers()
- getMember()
Data sets¶
An OSM dataset is basically a long list of nodes, ways and relations that is encoded using one of the basic storage file formats. osm4j provides access to data encoded in the most important of these data formats by providing OsmReader and OsmIterator implementations for them.
All basic data formats have in common, that they store their data in a specific order:
They contain a sequence of nodes, followed by a sequence of ways, followed by a sequence of relations. Each sequence contains its elements ordered by the objects’ ids in ascending order. Thus, when processing an OpenStreetMap dataset, you will encounter the contained data in exactly this order. Also, when writing a dataset to some output using an OsmOutputStream, it is important to feed the elements to the stream in the correct order.
It is important to understand that ways and relations reference other objects using their ids. They do not contain the data of referenced objects themselves. Hence, to work with a way or relation it is usually necessary to resolve those references and find the actual objects they reference.
For example, a way is just a sequence of node ids. To interpret the geometry of the way, you have to assemble a sequence of coordinates from the references by finding the referenced nodes by their id.
Hello world¶
El ejemplo que sigue descarga un dataset de ejemplo que contiene los datos correspondientes a la Relation 1005914que corresponde con la Facultad de Letras de la Universidad de Girona. Los datos están almacenados en un fichero en formato .osm.
public static void main(String[] args)
throws MalformedURLException, IOException,
ParserConfigurationException, SAXException {
// Define a query to retrieve some data
String query = "http://mercatorlab.com/geoinquietos/girona1.osm";
// Open a stream
InputStream input = new URL(query).openStream();
// Create an iterator for XML data
OsmIterator iterator = new OsmXmlIterator(input, false);
// Iterate all elements
for (EntityContainer container : iterator) {
// Check if the element is a Relation
if (container.getType() == EntityType.Relation) {
// Cast the entity to OsmRelation
OsmRelation rel = (OsmRelation) container.getEntity();
// Check if the Relation is the 1005914
if(rel.getId()==1005914l) {
// Print basic information
System.out.println("id: " + rel.getId());
int numberOfTags = rel.getNumberOfTags();
System.out.println("number of tags: "
+ rel.getNumberOfTags());
System.out.println("tags:");
for (int i = 0; i < numberOfTags; i++) {
OsmTag tag = rel.getTag(i);
System.out.println(tag.getKey() + " = "
+ tag.getValue());
}
int numberOfMembers = rel.getNumberOfMembers();
System.out.println("number of members: " +
rel.getNumberOfMembers());
for(int i=0; i<numberOfMembers;i++) {
OsmRelationMember member = rel.getMember(i);
System.out.println(member.getId() + " " +
member.getType() + " " + member.getRole());
}
}
}
}
}
Python OsmApi¶
Permite la descarga de datos desde la base de datos y también la actualización de la base de datos. Hay que respetar los códigos de conducta cuando se suben datos a OSM.
Para utilizar la librería tendremos que instalarla con:
pip install osmapi
Hello World : node download¶
Un ejemplo en Python 3 para descargar la información de un Node del que conocemos su Id sería:
>>> from osmapi import OsmApi
>>> MyApi = OsmApi()
>>> print(MyApi.NodeGet(3926595467));
El resultado sería el siguiente:

La documentación del API se puede consultar en:
Javascript¶
Las librerías Openlayers y Leaflet tienen la posiblidad de trabajar con datos procedentes de OpenStreetMap, tanto en formato Raster como en formato vectorial.
OpenLayers¶
El wiki deOpenStreetMap ofrece ejemplos sencillos de consultas en OpenLayers. Puedes consultar la siguiente dirección:
http://wiki.openstreetmap.org/wiki/OpenLayers_Simple_Example
La documentación de OpenLayers 3 ofrece un buen ejemplo de consulta de datos vectoriales con OpenLayers 3. Se puede consultar en lasiguiente dirección:
http://openlayers.org/en/latest/examples/vector-osm.html
Para ejemplos más complejos una buena forma de aprender es realizar la correspondiente consulta Overpass API en la página http://overpass-api.de/query_form.html y pedirle que nos dé la salida en OpenLayers. Sobre dicha salida podemos examinar el código fuente para comprender los conceptos y librerías utilizadas. Un ejemplo podría ser:

Leaflet¶
La siguiente página de Mapbox ofrece un ejemplo para descargar datos vectoriales de OpenStreetMap:
https://www.mapbox.com/mapbox.js/example/v1.0.0/leaflet-osm/
Acerca de este documento¶
Este documento ha sido creado en mayo de 2016 por Santiago Higuera, profesor de la Escuela Técnica Superior de Ingenieros de Caminos, Canales y Puertos de Madrid, en el Departamento de Matemáticas e Informática aplicadas a la Ingeniería Civil y Naval de la Universidad Politécnica de Madrid (España).
El objetivo es crear un manual para la utilización de los datos contenidos en la base de datos de OpenStreetMap.
Licencia¶
Excepto donde quede reflejado de otra manera, la presente documentación se halla bajo licencia Creative Commons Reconocimiento Compartir Igual
