ICE OSM Documentation Release 1.0

Santiago Higuera

Dec 12, 2017

Contents

1 Introducción 3 1.1 Flujo de trabajo en la descarga y utilización de datos OSM...... 5

2 Estructura de la información en OSM7 2.1 Node...... 8 2.2 Way...... 8 2.3 Relation...... 9

3 Descarga de datos desde OpenStreetMap 11 3.1 OSM File formats...... 11 3.2 Planet: Todos los datos de una vez...... 11 3.3 Pequeñas Cantidades de datos...... 12 3.4 Elegir la Región de descarga...... 13

4 El Editor iD 15 4.1 Comenzando con el Editor iD...... 15 4.2 Interfaz de usuario de iD...... 16 4.3 Configurando la capa de fondo...... 18 4.4 Edición básica con iD...... 20 4.5 Guardando sus cambios...... 24 4.6 Información adicional y etiquetas personalizadas...... 25 4.7 iD versus JOSM...... 26

5 El WIKI de OSM en español 29 5.1 Tutoriales de OpenStreetMap en castellano...... 29 5.2 Video-tutoriales...... 29 5.3 Normalización: convenios acordados en la lista de correo española para mapear España...... 30 5.4 Manual de buenas prácticas...... 30 5.5 Etiquetado de edificios: tipos de edificios...... 30 5.6 Etiquetado de carreteras...... 30 5.7 Rutas: etiquetado de vías ciclistas, líneas de autobús, senderos pedestres y otros...... 30 5.8 Lista de correos y herramientas de chat...... 30

6 JOSM 31 6.1 Configuración...... 33 6.2 Material de aprendizaje...... 35 6.3 Descarga de datos OSM desde JOSM...... 35

i 6.4 Exportación de datos desde JOSM...... 36

7 QGIS 37 7.1 Seleccionar objetos espaciales por filtro...... 39 7.2 Exportar a Postgis...... 39

8 Overpass API 41 8.1 Introducción...... 41 8.2 Peticion de los node de una zona...... 42 8.3 Opciones de Overpass Turbo...... 44 8.4 Ejemplos con Overpass Turbo...... 45 8.5 Encontrar el ID de un elemento...... 46 8.6 Acceder a la información de un elemento conocido su tipo y su Id...... 47 8.7 Conocer el historial de cambios de un elemento...... 47 8.8 Utilización con wget desde Linux...... 47 8.9 Utilización desde lenguajes de programación...... 47

9 ogr2ogr 49

10 Osm4j 51 10.1 Data model...... 51 10.2 OsmEntity...... 51 10.3 OsmNode...... 51 10.4 OsmWay...... 51 10.5 OsmRelation...... 52 10.6 Data sets...... 52 10.7 Hello world...... 52

11 Python OsmApi 55 11.1 Hello World : node download...... 55

12 Javascript 57 12.1 OpenLayers...... 57 12.2 Leaflet...... 58

13 Aplicaciones para dispositivos móviles 59 13.1 OSM AND...... 61 13.2 MAPILLARY...... 62 13.3 OpenStreetView...... 62

14 Acerca de este documento 63

15 Licencia 65

16 Indices and tables 67

ii ICE OSM Documentation, Release 1.0

Contenidos:

Contents 1 ICE OSM Documentation, Release 1.0

2 Contents CHAPTER 1

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 . 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 cuatro millones millones cuatrocientos mil usuarios registrados y el volumen de información almacenado era de unos 60 Gigabytes en formato comprimido (más de 800 Gb descomprimidos). Por ejemplo, el número de nodos almacenados a la fecha era de unos cuatro mil millones doscientos veintitres mil con tresmillones de juegos de cambios diarios. Las estadísticas actualizadas de uso se pueden consultar en el siguiente enlace:

3 ICE OSM Documentation, Release 1.0

4 Chapter 1. Introducción ICE OSM Documentation, Release 1.0

1.1 Flujo de trabajo en la descarga y utilización de datos OSM

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 ejemplo estamos haciendo un estudio acerca de las carreteras de una zona, habrá que extraer todos los elementos del tipo 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 con una 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.

1.1. Flujo de trabajo en la descarga y utilización de datos OSM 5 ICE OSM Documentation, Release 1.0

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

6 Chapter 1. Introducción CHAPTER 2

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 a la base de datos de dos niveles de información para cada uno de ellos: • 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ómeno de la realidad que se quiera modelizar se le asigna una primitiva geométrica que le dota de la información espacial. Hay tres tipos de primitivas geométricas: • Node: corresponden a fenómenos cuya geometría se modeliza con un punto • Way: corresponden a fenómenos cuya geometría se modeliza mediante una línea abierta o cerrada. • Relation: combinan Nodes, Ways y otras Relations para definir geometrías o elementos complejos La información temática se incorpora al modelo mediante etiquetas, tags, que son parejas de cadenas de texto en la forma key-value. Cada primitiva geométrica lleva asociadas un número indeterminado de etiquetas que permiten 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 Cada primitiva geométrica tiene una serie de atributos que permiten caracterizar a los elementos que representan: • : Es el identificativo del elemento en la base de datos. A cada elemento le corresponde un id único, mediante el cuál es posible identificarlo en la base de datos. Hay tablas diferentes en la base de datos para los elementos del tipo node, way o relation, y cada una de ellas tiene su lista de id’s. Por ello, puede suceder que un elemento node tenga el mismo id que un elemento way, por ejemplo, pero al tratarse de distinto tipo de elemento, la identificación sigue siendo única. • version: la primera vez que se graba un elemento en la base de datos se le asigna el número de versión 1. Este número de versión se va incrementando cada vez que el elemento se actualice o se le realicen modificaciones en sus atributos o tags. • changeset: Cada vez que un usuario realiza una serie de cambios y los sube a la base de datos de OSM, dicho conjunto de cambios se identifican con un identificador que quedará registrado en la base de datos de OSM,

7 ICE OSM Documentation, Release 1.0

junto con el usuario y la fecha en que se han realizado. El identificativo del último conjunto de cambios que ha modificado cada elemento se guarda en este atributo. • user: este atributo guarda el nombre del usuario que ha realizado la última edición o actualización del elemento. • uid: este atributo es el identificativo del usuario anterior, en la base de datos de usuarios de OSM • visible: si el atributo tiene valor true, el elemento se mostrará en los renderizadores, en caso contrario, el elemento no se visualizará. • timestamp: es la fecha de la última edición o modificación realizada en el elemento. Junto con los atributos changeset, user y uid permiten identificar totálmente la última modificación que se ha realizado en un elemento y deshacerla, si ello fuera preciso. Además de estos atributos, que son comunes a los tres tipos de primitivas geométricas (nodes, ways y relations), cada elemento tiene otros atributos específicos de su tipo, que describimos a continuación.

2.1 Node

Un Node representa una geometría puntual. Cada node consta de una serie de atributos y una colección de tags. Los atributos que utilizan los elementos node son: • lat: Latitud geográfica del punto en el sistema de referencia WGS84. Se utilizan siete decimales significativos, que equivalen aproximadamente a un centímetro de precisión. • lon: longitud geográfica del punto en el sistema de referencia WGS84. Al igual que con la latitud, se utilizan siete decimales, que confieren una precisión de aproximadamente un centímetro en el ecuador. Un ejemplo de un Node en formato OSM:

2.2 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:

8 Chapter 2. Estructura de la información en OSM ICE OSM Documentation, Release 1.0

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 de una línea cerrada.

2.3 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:

Hay combinaciones más complejas de multipolygon. La Relation multipolygon se puede consultar en el siguiente enlace: http://wiki.openstreetmap.org/wiki/Relation:multipolygon

2.3. Relation 9 ICE OSM Documentation, Release 1.0

10 Chapter 2. Estructura de la información en OSM CHAPTER 3

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 suministra- dos por terceras partes. Conviene tratar de descargar de estos sitios 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.

3.1 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

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

11 ICE OSM Documentation, Release 1.0

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: http://www.geofabrik.de/ Geofabrik ofrece los conjuntos de datos en formato .osm y también en formato .shp.

3.3 Pequeñas Cantidades de datos

3.3.1 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 (especial- mente 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.

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

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

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

3.3.5 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 esta herramienta sea muy interesante.

3.3.6 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

12 Chapter 3. Descarga de datos desde OpenStreetMap ICE OSM Documentation, Release 1.0 es posible utilizar peticiones HTTP genericas a través de Overpass API y procesar los datos obtenidos por nuestros medios.

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

3.4. Elegir la Región de descarga 13 ICE OSM Documentation, Release 1.0

14 Chapter 3. Descarga de datos desde OpenStreetMap CHAPTER 4

El Editor iD

El editor iD es el editor de OpenStreetMap de facto, basado en navegador. iD es fácil y rápido de utilizar, y permite mapear desde diferentes fuentes de datos como imágenes de satélite y aéreas, GPS, Field Papers o Mapillary. Usar el editor iD es una buena manera de realizar cambios pequeños y sencillos que no requieren de las características avanzadas de JOSM (un editor de mapas más avanzado). Este capítulo muestra los conceptos básicos de la edición con iD.

4.1 Comenzando con el Editor iD

• El editor iD requiere una conexión activa a Internet. • Abra su navegador de Internet y vaya a la página web de OpenStreetMap en http://www.openstreetmap.org. • Iniciar Sesión usando su cuenta de OpenStreetMap • Desplace y amplié el área en el mapa que desea editar. Puede desplazar el mapa manteniendo pulsado el botón izquierdo del ratón y arrastrando el mapa al área deseada. • Haga clic en la flecha pequeña junto a Editar. Luego, haga clic en Editar con iD (editor en el navegador).

15 ICE OSM Documentation, Release 1.0

4.2 Interfaz de usuario de iD

1. Panel de edición de elementos: Este panel muestra las etiquetas del objeto que ha sido seleccionado en el mapa. Puede agregar o editar las etiquetas desde este panel. 2. Herramientas: Este panel muestras las herramientas básicas de edición:

16 Chapter 4. El Editor iD ICE OSM Documentation, Release 1.0

• Dibujar un punto (nodo), acceso directo 1

• Dibujar una línea (camino), acceso directo 2

• Dibujar una forma (polígono), acceso directo 3

• Deshacer, acceso directo Ctrl+z

• Rehacer, acceso directo Ctrl+y

• Guardar cambios, acceso directo Ctrl+s

3. Panel del mapa: Este panel muestra varias funciones de configuración: • Acercar, acceso directo +

• Alejar, acceso directo -

• Mostrar su ubicación

• Configurar la capa de fondo, acceso directo b

4.2. Interfaz de usuario de iD 17 ICE OSM Documentation, Release 1.0

• Datos del mapa, acceso directo f

• Abrir el menú de ayuda, acceso directo h

4. Panel de información: Este panel muestra información diversa como, la barra de escala y qué usuarios han contribuido en esa área.

4.3 Configurando la capa de fondo

Antes de comenzar a editar, puede cambiar la capa de fondo. • Haga clic en el botón de Configuración del fondo o utiliza el acceso directo b.

• Verá un panel como este:

• Puede cambiar el nivel de brillo haciendo clic en alguno de estos cuadros:

18 Chapter 4. El Editor iD ICE OSM Documentation, Release 1.0

• Hay 4 niveles diferentes de brillo - 100%, 75%, 50% y 25%. Haga clic en cada uno de ellos para ver la diferencia. • También puede cambiar la capa de fondo para usar su proveedor de teselas deseado (el predeterminado es Bing Aerial Imagery). Pruebe las diferentes opciones disponibles de esta lista. • Puede agregar sus propias teselas haciendo clic en Personalizado. • Por ejemplo, si quiere añadir un Field Paper, haga clic en Personalizado y luego en el icono de la lupa (búsqueda) para abrir la siguiente ventana:

e introduzca su URL de instantánea Field Paper, que será algo como esto: • Puede mostrar rutas de GPS desde su computadora (formato GPX). Es tan simple como arrastrar y soltar el archivo GPX en el editor iD. • Puede habilitar trazas GPS de OpenStreetMap para mostrar trazas públicas de GPS disponibles para el área. En la imagen de abajo, las trazas GPS públicas se muestran en varios colores, lo que indica la dirección de desplazamiento.

4.3. Configurando la capa de fondo 19 ICE OSM Documentation, Release 1.0

• Si hay que [compensar las imágenes](/es//aerial-imagery), puede corregir el desfase de imágenes haciendo clic en corregir la alineación.

• Haga clic en los botones de navegación para mover la imagen. Haga clic en el botón de restaurar para volver a la posición predeterminada.

4.4 Edición básica con iD

Ahora empecemos a practicar con iD.

4.4.1 Añadiendo puntos

• Para añadir un punto nuevo, haga clic en el botón Punto.

• El cursor de su ratón se transformará en el signo más (+). Ahora, haga clic en una posición que usted conoce para marcar una ubicación. Por ejemplo, si sabe que hay un hospital en su área, haga clic en la posición del mismo.

20 Chapter 4. El Editor iD ICE OSM Documentation, Release 1.0

• Note que un nuevo punto se ha añadido. Al mismo tiempo, en el panel izquierdo aparecerá un formulario donde puede seleccionar atributos para el objeto. Haga clic en Hospital para etiquetar el punto como un hospital.

• Puede usar los formularios para llenar información detallada acerca del punto. Puede rellenar el nombre del hos- pital, dirección, y otra información adicional. Note que cada elemento tendrá diferentes opciones, dependiendo de la etiqueta que seleccione del panel de elementos. • Si comete un error, como por ejemplo una ubicación incorrecta, puede mover su punto a una nueva ubicación

4.4. Edición básica con iD 21 ICE OSM Documentation, Release 1.0

haciendo clic con el botón izquierdo del ratón sobre el punto y arrastrándolo. O, si desea eliminar su punto, haga clic con el botón izquierdo sobre el punto y luego haga clic en el botón que se parece a una papelera.

Un “punto” creado en el editor iD es en realidad un “nodo” independiente, asociado a un conjunto de “etiquetas”.

4.4.2 Dibujando líneas

• Para agregar una nueva línea, haga clic en el botón Línea.

• Su cursor se transformará en el signo más (+). Busque una ruta que no haya sido dibujada en el mapa y trácela. Haga un sólo clic en el punto donde el segmento de ruta comienza, mueva el ratón, y haga clic nuevamente para agregar puntos adicionales. Haga doble-clic para terminar el proceso de trazado. Observe el panel de la izquierda.

• Del mismo modo que con un punto, seleccione las etiquetas apropiadas para su línea. • Puede arrastrar puntos desde la línea haciendo clic con el botón izquierdo del ratón y arrastrándolo. • También puede mover la línea entera seleccionándola, y eligiendo la Herramienta de movimiento. Luego, arrastre la línea hacia su nueva posición.

22 Chapter 4. El Editor iD ICE OSM Documentation, Release 1.0

• Cuando haga clic con el botón izquierdo del ratón en un punto individual (nodo) de la línea, verá estas her- ramientas: • Eliminar punto de la línea

• Desconectar punto de la línea

• Dividir la línea en dos a partir del punto seleccionado

• Cuando haga clic con el botón izquierdo del ratón en una línea (pero no en un punto), verá estas herramientas: • Eliminar línea

• Crear un círculo a partir de una línea (activo solamente si la línea es cerrada)

• Mover línea

• Formar una figura cuadrada a partir de una línea (activo solamente si la línea es cerrada)

• Invertir la dirección de la línea (útil para ríos y calles de un solo sentido)

Una “línea” creada en el editor iD es en realidad una “vía” con “etiquetas” asociadas. >Una consideración con respecto a la Eliminación: En general, debería evitar eliminar mapeos de otras personas si solo necesitan mejoras. Puede borrar sus propios errores, pero debería intentar corregir los objetos mapeados de otras personas si es que necesitan cambios. Esto preserva la historia de los elementos en la base de datos de OSM y es respetuoso hacia otros mapeadores. Si realmente cree que algo debería ser eliminado, considere primero consultarlo con el mapeador original, o en alguna de las listas de correo de OSM.

4.4. Edición básica con iD 23 ICE OSM Documentation, Release 1.0

4.4.3 Dibujando formas (polígonos)

• Para añadir un nuevo polígono, haga clic en el botón Área.

• Su cursor se transformará en el signo más (+). Intente trazar un edificio usando la imagen como guía. • Notará que el color del polígono cambiará dependiendo de los atributos que le asigne al mismo.

• Las herramientas que están disponibles cuando selecciona un polígono son similares a aquellas que están disponibles cuando hace clic en una línea. Un “polígono” en el editor iD es en realidad una “vía cerrada” con etiquetas asociadas.

4.5 Guardando sus cambios

• Cuando desee guardar sus cambios en OpenStreetMap (si es que así lo desea), haga clic en el botón Guardar. El panel de la izquierda mostrará el panel de subida.

24 Chapter 4. El Editor iD ICE OSM Documentation, Release 1.0

• Ingrese un comentario acerca de sus cambios y haga clic en Guardar.

4.6 Información adicional y etiquetas personalizadas

• Cuando esté editando un objeto, verá una tira de iconos en la sección inferior del panel de atributos. Puede agregar información adicional haciendo clic en estos iconos: • Añadir elevación

• Añadir notas

• Añadir contactos / número de teléfono

• Añadir etiqueta de origen

4.6. Información adicional y etiquetas personalizadas 25 ICE OSM Documentation, Release 1.0

• Añadir sitio web

• Añadir información de accesibilidad

• Añadir enlace de Wikipedia

• O, puede añadir etiquetas personalizadas haciendo clic en Todas las etiquetas.

• Esto mostrará todas las etiquetas asociadas al elemento.

• Haga clic en el signo más (+) para añadir claves y valores, o haga clic en el icono de la papelera para eliminar etiquetas.

4.7 iD versus JOSM iD es bueno para... • Cuando esté realizando cambios simples • Cuando tiene Internet lo suficientemente rápida para cargar las imágenes y guardar los cambios • Cuando quiere estar seguro de seguir un esquema de etiquetado simple y consistente • Cuando no tenga la libertad de instalar un programa en la computadora que esté usando JOSM es mejor... • Cuando esté añadiendo muchos edificios (refiérase al plugin buildings_tool)

26 Chapter 4. El Editor iD ICE OSM Documentation, Release 1.0

• Cuando esté editando muchos polígonos o líneas que ya existen • Cuando no tenga una conexión a Internet confiable o esté fuera de línea • Cuando utilice un esquema de etiquetado específico (o preajustes personalizados)

4.7. iD versus JOSM 27 ICE OSM Documentation, Release 1.0

28 Chapter 4. El Editor iD CHAPTER 5

El WIKI de OSM en español

Actuamente la comunidad de OpenStreetMap en español está llevando a cabo una actualización de las herramientas disponibles para mapeadores y la adopción de criterios comunes para el etiquetado de los elementos de la base de datos. La comunidad incluye no solo a los mapeadores de España, sino en general, a los mapeadores de todos los países de idioma castellano. Hay una página dedicada al proyecto en español de OpenStreetMap. La dirección web es: http://wiki.openstreetmap.org/wiki/WikiProject_Spanish Se ha creado también una página en la que se trata de reunir y organizar la información relativa a criterios de etiquetado y toda una serie de información en relación con las actividades de los miembros de la comunidad OpenStreetMap en español, como enlace a eventos, proyectos relacionados y otros enlaces de interés. La página principal desde la que se puede acceder al resto de contenidos es la siguiente: http://wiki.openstreetmap.org/wiki/WikiProject_Spain Esta página del WIKI tiene muchísima información y se está actualizando continuamente, por lo que debe constituir el punto de partida cuando queramos mapear o acceder a los contenidos de OpenStreetMap. Como ejemplos de contenidos vamos a detallar algunos de ellos.

5.1 Tutoriales de OpenStreetMap en castellano http://learnosm.org/es/

5.2 Video-tutoriales http://wiki.openstreetmap.org/wiki/ES:Videotutoriales

29 ICE OSM Documentation, Release 1.0

5.3 Normalización: convenios acordados en la lista de correo es- pañola para mapear España http://wiki.openstreetmap.org/wiki/Normalizaci%C3%B3n

5.4 Manual de buenas prácticas http://wiki.openstreetmap.org/wiki/WikiProject_Spain/Buenas_pr%C3%A1cticas

5.5 Etiquetado de edificios: tipos de edificios http://wiki.openstreetmap.org/wiki/ES:Caracter%C3%ADsticas_de_cartograf%C3%ADa#Residencial

5.6 Etiquetado de carreteras http://wiki.openstreetmap.org/wiki/ES:Caracter%C3%ADsticas_de_cartograf%C3%ADa#Residencial

5.7 Rutas: etiquetado de vías ciclistas, líneas de autobús, senderos pedestres y otros http://wiki.openstreetmap.org/wiki/ES:Caracter%C3%ADsticas_de_cartograf%C3%ADa#Route_.28Rutas.29

5.8 Lista de correos y herramientas de chat

La mejor manera de mantenerse informado de las actividades de la comunidad de OpenStreetMap en español es a través de la lista de correo TALK-ES. https://lists.openstreetmap.org/listinfo/talk-es También disponemos de un grupo en Telegram denominado OSM España. Si dispones de telegram en tu móvil y quieres unirte al grupo, háznoslo saber. También se realiza chat a través de https://riot.im. En dicho chat realizamos una reunión mensual, el primer miércoles de cada mes a las 22h (horario de España), a la que estás invitado.

30 Chapter 5. El WIKI de OSM en español CHAPTER 6

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

31 ICE OSM Documentation, Release 1.0

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: Atajos de teclado para JOSM

32 Chapter 6. JOSM ICE OSM Documentation, Release 1.0

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

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

6.1. Configuración 33 ICE OSM Documentation, Release 1.0

6.1.2 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í

34 Chapter 6. JOSM ICE OSM Documentation, Release 1.0

6.1.3 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 Com- plementos 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: JOSM Plugins El siguiente documento aporta algo más de información acerca de la instalación de plugins en OSM: JOSM Plugins and Preferences

6.2 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

Introducción a JOSM Editar con JOSM Herramientas de Edición en JOSM Complementos de JOSM y Opciones Usando Fotografías Aéreas

6.3 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:

6.2. Material de aprendizaje 35 ICE OSM Documentation, Release 1.0

• 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 ele- mentos 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.

6.4 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

36 Chapter 6. JOSM CHAPTER 7

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:

37 ICE OSM Documentation, Release 1.0

Nota: En caso de dificultad para encontrar la capa del PNOA, se puede utilizar directamente la siguiente url: PNOA Máxima actualidad A continuación procederemos a descargar los datos OpenStreetMap de la zona a un fichero en formato .osm. Ten- dremos 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.

38 Chapter 7. QGIS ICE OSM Documentation, Release 1.0

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

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

7.1. Seleccionar objetos espaciales por filtro 39 ICE OSM Documentation, Release 1.0

40 Chapter 7. QGIS CHAPTER 8

Overpass API

8.1 Introducción

Overpass API permite hacer consultas a la base de datos de OSM según distintos criterios de búsqueda. El criterio de búsqueda puede ser, entre otros, la localización de los elementos, el tipo de los mismos, que contengan determinadas etiquetas o combinaciones de varios criterios. Actua a modo de base de datos en la red: el cliente envía una petición (query) y obtiene como resultado el conjunto de datos que se corresponde con dicha petición. Los resultados de las consultas se pueden obtener en los formatos OSM XML y en OSM JSON. El wiki de OpenStreetMap ofrece una página quepuede servir de introducción a las principales características de la API de Overpass en la siguiente dirección: http://wiki.openstreetmap.org/wiki/Overpass_API El portal de Overpass-API, por su parte, ofrece la información completa acerca del API, su lenguaje de consultas y otras herramientas que se ponen a disposición. La dirección del portal de Overpass API es: http://overpass-api.de/index.html Overpass API tiene su propio lenguaje. En este curso haremos una introducción a dicho lenguaje y aprenderemos cómo hacer algunas consultas básicas. Se puede encontrar una descripción más detallada de las especificaciones del lenguaje en las siguientes direcciones WEB: http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL En este curso también daremos una explicación del funcionamiento y posibilidades del portal Overpass Turbo. El portal Overpass Turbo se puede utilizar para hacer consultas utilizando Overpass API y obtener las salidas en diferentes formatos. Ofrece varias utilidades relacionadas con la realización de las consultas, como la posibilidad de crear enlaces a las mismas, exportación de los resultados en varios formatos, la posibilidad de hacer consultas en lenguaje natural y otras. Más adelante, explicaremos algunas de ellas. La dirección del portal de Overpass Turbo es: http://overpass-turbo.eu Otro portal interesante para probar o fabricar consultas es el siguiente: http://overpass-api.de/query_form.html.

41 ICE OSM Documentation, Release 1.0

Una opción interesante de este último portal es la posibilidad de generar un programa OpenLayers con el mapa de OpenStreetMap y la consulta. Overpass API tiene ciertas limitaciones. Para consultas que consistan en todos los elementos de un área geográfica extensa, es más operativo utilizar los paquetes de datos proporcionados por Geofrabik u otros distribuidores de datos. Se pueden consultar los distribuidores de datos en: http://wiki.openstreetmap.org/wiki/Processed_data_providers Otra limitación de las consultas a través de Overpass API es que no podemos hacer consultas acerca de los changesets, esto es, los conjuntos de cambios que han ido afectando a determinados elementos. Sí que podemos haecr la consulta con un criterio de selección temporal que nos indique el estado de un elemento en determinado instante de tiempo.

8.2 Peticion de los node de una zona

La petición más sencilla que podemos hacer es, seguramente, la de los elementos del tipo node contenidos en un area delimitado por un boundig box. Un bounding box es una área rectangular del mapa definido por las coordenadas de su esquina inferior izquierda (sur-oeste) y las de su esquina superior derecha (norte-este). El orden en que se escriben las coordenadas es ‘latitud mínima, longitud mínima, latitud máxima, longitud máxima’. (Nota: Hay que tener en cuenta que, cuando las longitudes o latitudes son negativas, los valores menores corresponden a valores abslutos mayores, así la longitud -3.98 es *menor que la longitud -3.8, por ejemplo*). Veamos un ejemplo de una query que solicite todos los nodos contenidos en un rectángulo de coordenadas ‘40.4447, -3.7344, 40.4484, -3.7301’. La sentencia o query que tenemos que escribir en el lenguaje QL de Overpass API es la siguiente:

(node(40.4447,-3.7344, 40.4484,-3.7301));out;

El mismo ejemplo, con otras coordenadas:

(node(41.9842, 2.8272, 41.9860, 2.8287));out;

Puedes probar la orden tecleándola en el portal Overpass Turbo o directamente accediendo al siguiente enlace que se ha obtenido mediante la opción share de dicho portal: .

42 Chapter 8. Overpass API ICE OSM Documentation, Release 1.0

Esta sentencia en realidad son dos órdenes a la API de Overpass: • La primera orden es (node(minlat, minlon, maxlat, maxlon)). El bounding box se especifica como: (minLat, minLon, maxLat, maxLon). • La segunda orden es out Las dos ordenes se separan por un punto y coma y se ejecutan una a continuación de otra. Podemos enlazar varias ordenes una detrás de otra separándolas por punto y coma. La orden completa funciona a modo ‘tubería‘. El resultado de cada orden individual se pasa a la siguiente orden, que operará sobre dicho resultado. En el ejemplo anterior, el resultado de los nodos del bounding box son los que se pasan a la orden out, que nos devuelve el conjunto de datos. Podemos afinar nuestra búsqueda.Para ello vamos a añadir un filtro que seleccione solo los nodos que tengan la etiqueta highway con el valor bus_stop. Aplicaremos esta orden a un boundig box un poco mayor, que abarque una zona amplia de la Ciudad Universitaria. De esta forma obtendremos todas las paradas de autobús que figuren en el mapa dentro de la zona especificada por el bounding box: . El portal Overpass Turbo nos ofrece la posibilidad de obtener los resultados dibujando los nodos sobre un mapa o en formato OSM XML. Para ello hay que pulsar la pestaña correspondiente en la esquina superior derecha.

8.2. Peticion de los node de una zona 43 ICE OSM Documentation, Release 1.0

Más adelante veremos como combinar varias etiquetas o como realizar peticiones más complejas. De momento vamos a repasar un poco algunas de las opciones que nos ofrece el portal de Overpass Turbo.

8.3 Opciones de Overpass Turbo

El portal de Overpass Turbo nos ofrece unas cuantas opciones muy interesantes. Se accede a ellas en las pestañas que aparecen en la parte superior de la página. Las opciones principales son las siguientes: • Run: ejecuta la consulta que esté escrita en el editor y muestra el resultado en la pantalla del mapa. Una vez ejecutada la consulta puede ser necesario pulsar sobre la pequeña lupa que aparece en la parte superior izquierda delmapa para que centre la vista sobre la consulta que se acaba de realizar. • Share: ofrece un enlace mediante el cual podemos recuperar la consulta mediante un navegador. • Export: permite guardar en disco el resultado de la consulta en diferentes formatos. También permite guardar el propio mapa, como imagen png, o como mapa interactivo. Por último, desde esta opción, también podemos grabar el texto de la propia consulta. • Wizard: esta opción nos ayuda a crear consultas mediante lenguaje natural, que luego convertirá al lenguaje de Overpass API. • Save: guarda en el propio navegador una consulta para poder utilizarla en otro momento posterior de la sesión de trabajo. • Load: recupera una consulta guardada anteriormente mediante el comando save • Settings: permite configurar algunas de las opciones del programa • Help: ayuda en la que se explican todas las opciones y atajos de teclado del programa. • Map-Data: como se explicó en el aprtado anterior, estas pestañas permiten seleccionar que la salida de resulta- dos de una consulta se muestre sobre el mapa o como texto en formato OSM XML

44 Chapter 8. Overpass API ICE OSM Documentation, Release 1.0

El mapa también dispone de algunas opciones de navegación en los botones de la parte superior izquierda.

8.4 Ejemplos con Overpass Turbo

8.4.1 Un elemento por su ID

Si conocemos el Id del elemento que queremos descargar podemos solicitar la información del mismo: node(4129698657);out;

8.4.2 Todos los nodos con una etiqueta determinada

Todas las farmacias del Barrio de Salamanca en Madrid: node(40.9365,-5.7087, 40.9942,-5.6586)["amenity"="pharmacy"];out;

Todas los nodos paradas de autobús de la Ciudad Universitaria en Madrid: node(40.4405,-3.7404,40.4551,-3.7279)["highway"="bus_stop"];out;

Todos nodos los hospitales de Madrid: node(40.3091,-3.7707,40.5420,-3.5702)["amenity"="hospital"];out;

8.4.3 Todos los nodos con dos etiquetas determinadas

Podemos poner como condición que el valor de dos o más etiquetas esté determinado, por ejemplo, para encontrar el Restaurante ‘El Albero‘ de Moralzarzal: node(40.6631,-4.0142, 40.6927,-3.9468)["amenity"="restaurant"]["name"="El Albero"];

˓→out;

También podríamos encontrarlo sin especificar el bounding box, solo por etiquetas: node["addr:city"="Moralzarzal"]["amenity"="restaurant"]["name"="El Albero"];out;

8.4.4 Ways de una Relation

Todas las ways de Madrid referenciadas en la relación de ref=M-40: relation(40.3091,-3.7707,40.5420,-3.5702)["ref"="M-40"];way(r);out;

8.4.5 Ways con recursividad a nodos para que se vean las líneas

La carretera M-607: way(40.6573,-3.9610,40.7169,-3.7423)["ref"="M-607"];(._;>;);out;

Todos los ways con la etiqueta building=house de una determinada zona:

8.4. Ejemplos con Overpass Turbo 45 ICE OSM Documentation, Release 1.0

way(40.67441,-3.97063, 40.67812,-3.96221)["building"="house"];(._;>;);out;

8.4.6 Unión

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;

Otro ejemplo: todos los bares o pubs del Barrio de Salamanca en Madrid:

(node(40.4232,-3.6918,40.4378,-3.6793)["amenity"="bar"]; node(40.4232,-3.6918,40.4378,-3.6793)["amenity"="pub"];);out;

Otro ejemplo podría ser todos los edificios y piscinas de una determinada zona:

(way(40.67441,-3.97063, 40.67812,-3.96221)["building"="house"]; way(40.67441,-3.97063, 40.67812,-3.96221)["leisure"="swimming_pool"]); (._;>;);out;

8.4.7 Around: Elementos a cierta distancia de un punto

Podemos 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;

Un ejemplo podría ser obtener las farmacias a menos de un kilómetro de la Plaza del Carmen, en Madrid:

node(around:1000.0,40.41876,-3.70331)["amenity"="pharmacy"];out;

Around de un elemento determinado del que conocemos su Id. En el siguiente ejemplo se obtienen los bares a menos de 500 metros de la iglesia de Moralzarzal:

way(132527765);node(around:500)["amenity"="bar"];out;

Hay multitud de combinaciones que permiten hacer todo tipo de consultas selectivas. Se puede consultar la docu- mentación completa del lenguaje en el siguiente enlace: http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL

8.5 Encontrar el ID de un elemento

Si queremos conocer el Id que corresponde a un elemento del mapa, podemos activar la edición con Id y, a contin- uación, pinchar en el enlace que aparece abajo del panel Ver en openstreetmap.org. Nos abrirá una ventana nueva con el mapa y el elemento seleccionado. También nos mostrará información del elemento.

46 Chapter 8. Overpass API ICE OSM Documentation, Release 1.0

8.6 Acceder a la información de un elemento conocido su tipo y su Id

Podemos acceder directamente a la información de un elemento accediendo a la web dirección: http://www.openstreetmap.org/tipo/id

Un ejemplo sería el siguiente, en el que se accede a la información de la Iglesia de Moralzarzal: https://www.openstreetmap.org/way/132527765 En la parte inferior del panel de información aparece un enlace desde el que podemos descargar el elemento en formato .osm.

8.7 Conocer el historial de cambios de un elemento

Utilizando el procedimiento del apartado anterior, en la parte inferior del panel de información del elemento aparece un enlace que nos mostrará el historial de cambios. También podemos acceder directamente, si conocemos el tipo de elemento y su id mediante la siguiente url: http://www.openstreetmap.org/tipo/id/history

Por ejemplo, para acceder al historial de la Plaza de Toros de Moralzarzal, que tiene el id=93278820: https://www.openstreetmap.org/way/93278820/history

8.8 Utilización con wget desde Linux

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"

8.9 Utilización desde lenguajes de programación

Mediante peticiones GET o POST, podemos realizar las consultas desde cualquier lenguaje de programación.

8.6. Acceder a la información de un elemento conocido su tipo y su Id 47 ICE OSM Documentation, Release 1.0

48 Chapter 8. Overpass API CHAPTER 9

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

49 ICE OSM Documentation, Release 1.0

50 Chapter 9. ogr2ogr CHAPTER 10

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/

10.1 Data model

10.2 OsmEntity

• getId() • getMetadata() • getNumberOfTags() • getTag()

10.3 OsmNode

• getLatitude() • getLongitude()

10.4 OsmWay

• getNumberOfNodes()

51 ICE OSM Documentation, Release 1.0

• getNodeId()

10.5 OsmRelation

• getNumberOfMembers() • getMember()

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

10.7 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

52 Chapter 10. Osm4j ICE OSM Documentation, Release 1.0

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

10.7. Hello world 53 ICE OSM Documentation, Release 1.0

54 Chapter 10. Osm4j CHAPTER 11

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

11.1 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:

55 ICE OSM Documentation, Release 1.0

La documentación del API se puede consultar en: OsmApi

56 Chapter 11. Python OsmApi CHAPTER 12

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.

12.1 OpenLayers

El wiki deOpenStreetMap ofrece ejemplos sencillos de consultas en OpenLayers. Puedes consultar la siguiente direc- ció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: http://overpass-api.de/api/convert?data=%28node%2841.9837%2C2.8243%2C41.9866%2C2.8307%29% 5Bamenity%3Drestaurant%5D%3Bnode%2841.9837%2C2.8243%2C41.9866%2C2.8307%29%5Bamenity% 3Dpub%5D%29%3Bout%3B&target=ol_fixed

57 ICE OSM Documentation, Release 1.0

12.2 Leaflet

La siguiente página de ofrece un ejemplo para descargar datos vectoriales de OpenStreetMap: https://www.mapbox.com/mapbox.js/example/v1.0.0/leaflet-osm/ #mobileapps

58 Chapter 12. Javascript CHAPTER 13

Aplicaciones para dispositivos móviles

Hay diferentes tipos de aplicaciones para dispositivos móviles que utilizan mapas de OpenStreetMap. Existen aplica- ciones del tipo navegador, para editar el mapa, para grabar las trazas GPS, de realidad aumentada, para planificación de viajes y otras. Puedes echar un vistazo a algunas de esas aplicaciones en el siguiente enlace: Aplicaciones para dispositivos móviles

59 ICE OSM Documentation, Release 1.0

60 Chapter 13. Aplicaciones para dispositivos móviles ICE OSM Documentation, Release 1.0

El problema de las baterías: si se lleva una aplicación de tracking continuamente activada en el móvil, la batería dura muy poco. Es conveniente activar la opción de tomas de puntos cada cierto tiempo, si la aplicación lo permite, y llevar baterías portátiles o cargadores solares para recarga de los dispositivos.

13.1 OSM AND

Es una de las aplicaciones más completas que hay actualmente. Está disponible para Android e iOS Funciones de navegador inteligente, grabado de trazas GPS, toma de notas de audio/foto/vídeo para cualquier posición del mapa. Permite elegir el intervalo entre puntos grabados.

13.1. OSM AND 61 ICE OSM Documentation, Release 1.0

13.2 MAPILLARY

Es una aplicación para crear mapas con fotografías del recorrido. Mapillary

13.3 OpenStreetView

Aplicación similar a la anterior demás reciente aparición OpenStreetView

62 Chapter 13. Aplicaciones para dispositivos móviles CHAPTER 14

Acerca de este documento

Este documento ha sido creado en diciembre de 2017 por Santiago Higuera, profesor de la Escuela Técnica Superior de Ingenieros de Caminos, Canales y Puertos, 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.

63 ICE OSM Documentation, Release 1.0

64 Chapter 14. Acerca de este documento CHAPTER 15

Licencia

Excepto donde quede reflejado de otra manera, la presente documentación se halla bajo licencia Creative Commons Reconocimiento Compartir Igual

65 ICE OSM Documentation, Release 1.0

66 Chapter 15. Licencia CHAPTER 16

Indices and tables

• genindex • modindex • search

67