OSM no es un mapa, es una base de datos – El Hackatón - Almería – Antes de empezar....



OSM no es un mapa, es una base de datos – El Hackatón - Almería – Antes de empezar....

2 0


slides-elhackaton-osm

Charla sobre OSM en El Hackatón

On Github jsanz / slides-elhackaton-osm

OSM no es un mapa, es una base de datos

El Hackatón - Almería

http://bit.ly/elhackaton-osm

Jorge Sanz

·

Antes de empezar....

OSM 2008: A Year of Edits from ItoWorld

Primera parte

Qué es OpenStreetMap

Qué es OpenStreetMap

  • Comunidad de entusiastas del software y los datos libres
  • Proyecto para crear la mejor base de datos geográfica mundial
  • ¿Un mapa en la red?
  • ¡No! ¡Son muchos!
  • Pero no solo mapas, también un enorme ecosistema de productos y servicios

Ver

Consultar

Editar

¡Mejorar!

Pero Google Maps...

  • API: restricciones de uso, publicidad, ...
  • MapMaker: «vuestro trabajo es nuestro»

Open Database License

  • Licencia de OSM desde septiembre 2012,antes CC-BY-SA
  • Desarrollada por la OKFN
  • En resumen:
    • Puedes: compartir, crear, adaptar
    • Siempre que: atribución, compartir-igual, siempre abierto

Hitos

  • 2004 Steve Coast vs. Ordnance Survey.
  • 2006 Fundación sin ánimo de lucro, Yahoo autoriza uso imágenes.
  • 2007 Automotive Navigation Data (AND) dona Países Bajos, India y China. TIGER (Censo de EEUU).
  • 2008 CloudMade. GeoBase.ca dona Canadá.
  • 2009 API 0.6. 200.000 usuarios.
  • 2010 SotM en Girona. Bing Maps (Microsoft) permite uso imágenes.
  • 2011 + 500.000 usuarios, + 1.000.000.000 nodos
  • 2012 Cambio a ODbL, #switch2osm
  • 2013 + 1.000.000 usuarios, Tifón Yolanda
  • 2014 + 1.500.000 usuarios, ???

Números

  • A 19 de marzo de 2014
  • 1.554.973 usuarios
  • 3.850.724.816 puntos GPS
  • 2.249.508.428 nodos
  • 222.362.704 líneas
  • 2.440.593 relaciones
  • Fuente

Comparemos...

Almería

Burgos

Kibera · mapkibera.org

Puerto Príncipe · wiki

HOT

Humanitarian OpenStreetMap Team

  • Se organiza a partir del terremoto de Haití
  • Se realizan trabajos de formación en zonas necesitadas
  • La mayor parte del trabajo es remoto
  • Actualmente trabajando en Haití, Indonesia, Somalia, Costa de Marfil...

Tacloban · wiki · mapa de cambios ¡4.8M de cambios en la base de datos en 2/3 semanas!

Segunda parte

Cómo contribuir a OSM

Flujo de trabajo

Recoger datos Subirlos a OSM

Tomando datos con GPS

Field Papers

Mapping party

Preparando los equipos

Mapping party

De vuelta a editar

Editores de datos OSM

  • iD
    • JavaScript (d3js)
    • directamente en la web de OSM
    • para editores casuales
  • JOSM
    • escritorio, Java
    • mucha funcionalidad, plugins, etc
    • para editores avanzados
  • ... hay muchos más (incluso para teléfonos y tabletas)

Escuela de Bellas Artes en JOSM

Tercera parte

OSM para desarrolladores

El modelo de datos de OSM

  • Topológico, diferente del modelo features
  • Primitivas gráficas
    • Nodos
    • Vías (si se cierran pueden ser un área)
  • Atributos alfanuméricos
    • Relaciones
    • Etiquetas

Etiquetas

  • Dan semántica a las primitivas gráficas y relaciones
  • Definidas por la comunidad en el wiki

Nodos

  • Atributos importantes: identificador, latitud y longitud, usuario que creó el nodo y versión
  • Contenido: etiquetas

<node id="1035862914" visible="true" version="1"
        changeset="6637923" timestamp="2010-12-12T16:07:17Z"
        user="Schumi4ever" uid="83942"
        lat="36.8371080" lon="-2.4644590">
    <tag k="natural" v="tree"/>
</node>
            

https://www.openstreetmap.org/api/0.6/node/1035862914

Vías

  • Atributos: identificador, usuario, versión
  • Contenido: lista de nodos y etiquetas

<way id="159010347" visible="true" version="2"
        changeset="21196864" timestamp="2014-03-19T18:09:16Z"
        user="XuRxO" uid="13409">
    <nd ref="1711177810"/> <nd ref="1711177809"/>
     <-- más nodos... -->
    <nd ref="1711177808"/> <nd ref="1711177812"/>
    <nd ref="1711177810"/>
    <tag k="addr:city" v="Almería"/>
    <tag k="addr:postcode" v="04001"/>
    <tag k="addr:street" v="Plaza Pablo Cazard"/>
    <tag k="amenity" v="college"/>
    <tag k="building" v="school"/>
    <tag k="name" v="Escuela de Bellas Artes"/>
    <tag k="phone" v="+34950156158"/>
    <tag k="website" v="http://www.andalucia.org/...."/>
</way>

https://www.openstreetmap.org/api/0.6/way/159010347

Relaciones

  • Atributos: id, visible, usuario y timestamp
  • Contenido
    • Miembros: id, tipo y rol en la relación
    • Etiquetas

<relation id="2545358" visible="true" version="9" ...>
    <member type="node" ref="2306864392" role="stop"/>
    <member type="node" ref="2306864403" role="stop"/>
    <!-- más paradas ... -->
    <member type="way" ref="204274848" role="forward"/>
    <member type="way" ref="23290865" role="forward"/>
    <!-- más vías ... -->
    <tag k="colour" v="black"/>
    <tag k="name" v="Casco Histórico"/>
    <tag k="operator" v="SURBUS"/>
    <tag k="ref" v="1"/>
    <tag k="route" v="bus"/>
    <tag k="type" v="route"/>
    <tag k="wheelchair" v="yes"/>
</relation>
            

https://www.openstreetmap.org/api/0.6/relation/2545358

La API de OSM

  • Único medio de modificar datos
  • v0.6 desde 2009
  • RESTful
  • Consultas anónimas, actualizaciones por OAuth
  • Soporte de versionado
  • Descargas limitadas a cuadrados de 15'
  • No está enfocada a consulta, sino a edición
<osm version="0.6" generator="OpenStreetMap server">
<api>
<version minimum="0.6" maximum="0.6"/>
<area maximum="0.25"/>
<tracepoints per_page="5000"/>
<waynodes maximum="2000"/>
<changesets maximum_elements="50000"/>
<timeout seconds="300"/>
</api>
</osm>
            

http://api.openstreetmap.org/api/capabilities

<osm version="0.6" generator="OpenStreetMap server">
<node id="933346497" lat="41.5827283" lon="2.013415"
version="3" changeset="8211372" user="Jaume Figueras"
uid="55987" visible="true" timestamp="2011-05-21T22:26:13Z">
<tag k="ref" v="FIXME"/>
<tag k="network" v="Xarxa d'autobusos Urbans de Terrassa"/>
<tag k="covered" v="no"/>
<tag k="tactile_paving" v="yes"/>
<tag k="bench" v="yes"/>
<tag k="public_transport" v="platform"/>
<tag k="highway" v="bus_stop"/>
<tag k="uic_ref" v="FIXME"/>
<tag k="uic_name" v="FIXME"/>
<tag k="name" v="Arenys de Mar"/>
<tag k="shelter" v="yes"/>
<tag k="operator" v="TMESA"/>
<tag k="layer" v="0"/>
</node>
</osm>
            

http://api.openstreetmap.org/api/0.6/node/933346497

<osm version="0.6" generator="OpenStreetMap server">
<node id="933346497" lat="41.5827339" lon="2.0134288" changeset="5928981"
user="Jaume Figueras" uid="55987" visible="true" timestamp="2010-10-01T15:46:00Z" version="1">
<tag k="highway" v="bus_stop"/>
<tag k="shelter" v="yes"/>
<tag k="name" v="Arenys de Mar"/>
<tag k="tactile_paving" v="yes"/>
<tag k="bench" v="yes"/>
</node>
<node id="933346497" lat="41.5827339" lon="2.0134288" changeset="8167041"
user="Jaume Figueras" uid="55987" visible="true" timestamp="2011-05-16T21:38:38Z" version="2">
<tag k="highway" v="bus_stop"/>
<tag k="shelter" v="yes"/>
<tag k="network" v="Xarxa d'autobusos Urbans de Terrassa"/>
<tag k="name" v="Arenys de Mar"/>
<tag k="ref" v="FIXME"/>
<tag k="uic_name" v="FIXME"/>
<tag k="tactile_paving" v="yes"/>
<tag k="layer" v="0"/>
<tag k="covered" v="no"/>
<tag k="public_transport" v="platform"/>
<tag k="uic_ref" v="FIXME"/>
<tag k="bench" v="yes"/>
<tag k="operator" v="TMESA"/>
</node>
<node id="933346497" lat="41.5827283" lon="2.013415" changeset="8211372"
user="Jaume Figueras" uid="55987" visible="true" timestamp="2011-05-21T22:26:13Z" version="3">
<tag k="highway" v="bus_stop"/>
<tag k="shelter" v="yes"/>
<tag k="network" v="Xarxa d'autobusos Urbans de Terrassa"/>
<tag k="name" v="Arenys de Mar"/>
<tag k="ref" v="FIXME"/>
<tag k="uic_name" v="FIXME"/>
<tag k="tactile_paving" v="yes"/>
<tag k="layer" v="0"/>
<tag k="covered" v="no"/>
<tag k="public_transport" v="platform"/>
<tag k="uic_ref" v="FIXME"/>
<tag k="bench" v="yes"/>
<tag k="operator" v="TMESA"/>
</node>
</osm>
            

http://api.openstreetmap.org/api/0.6/node/933346497/history

<osm version="0.6" generator="OpenStreetMap server">
<changeset id="8211372" user="Jaume Figueras"
uid="55987" created_at="2011-05-21T22:26:04Z"
closed_at="2011-05-21T22:26:17Z" open="false"
min_lat="41.5617613" min_lon="2.0082875"
max_lat="41.5859881" max_lon="2.0241229">
<tag k="comment" v="Bus de Terrassa - Línia 7 adaptada al nou esquema i arranjaments varis"/>
<tag k="created_by" v="JOSM/1.5 (4064 en)"/>
</changeset>
</osm>
            

http://api.openstreetmap.org/api/0.6/changeset/8211372

<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="CGImap 0.0.2">
        <bounds minlat="41.5617613" minlon="2.0082875"
                maxlat="41.5859881" maxlon="2.0241229"/>
        <node id="282873786" lat="41.5803041" lon="2.0268698"
                user="Jaume Figueras" uid="55987" visible="true"
                version="5" changeset="1576508" timestamp="2009-06-20T17:59:37Z">
                        <tag k="highway" v="traffic_signals"/>
        </node>
        <node id="282873797" lat="41.5805069" lon="2.0266905"
                user="Jaume Figueras" uid="55987" visible="true"
                version="6" changeset="5858775" timestamp="2010-09-23T23:30:09Z">
                        <tag k="highway" v="traffic_signals"/>
        </node>
....
            

http://api.openstreetmap.org/api/0.6/map?bbox=2.0082875,41.5617613,2.0241229,41.5859881 1.6MB de descarga

Actualización de datos

  • PUT /api/0.6/changeset/create
  • PUT /api/0.6/changeset/#id/close
  • PUT /api/0.6/[N|W|R]/create
  • DELETE /api/0.6/[N|W|R]/#id

Otras consultas

  • GET /api/0.6/[N|W|R]/#id/relations
  • GET /api/0.6/node/#id/ways
  • GET /api/0.6/[W|R]/#id/full

Cómo añadir las teselas de OSM a nuestros proyectos

OpenLayers 2

OpenLayers 3

  • http://ol3js.org/
  • Profundo refactoring, en pre-release
  • Optimizada para móviles
  • Uso de Canvas, WebGL
  • Más fácil de personalizar la GUI
  • Ejemplo

Leaflet

Servicios derivados de la base de datos

  • El principal producto derivado es el planet
    • Toda la base de datos: 33GB en un XML comprimido
    • Incrementales por semana, día, hora y minuto
  • Overpass API está indicada para consultas
  • taginfo: API de estadísticas de uso de etiquetas
  • Nominatim: geocodificador
  • No oficial pero destacable es OSRM (demo)

Renderizados

  • Del planet se vuelca a una base de datos PostGIS
  • Se utiliza la librería Mapnik junto con un módulo de Apache: mod_tile
¿A quién no le gustan son los mapas?

Oficial

Ciclismo

Transporte

HOT

Pero esto solo es el principio

Algunos estilos ofrecidos por Cloudmade

Midnight Commander

Pale down

Free line

City living

Stamen

Watercolor

Toner

Mapbox

Estilo para Pinterest

Estilo para Foursquare

Random

¡Gracias!

Jorge Sanz · @xurxosanzEnlaces y referencias http://bit.ly/elhackaton-osm

Licencia

OSM no es un mapa, es una base de datos by Jorge Sanz is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
0