Contenidos
Nota
Texto extraído de la guía de inicio de OSM
La información es poderosa. Con buena información y el correcto entendimiento, los individuos y las comunidades son más capaces de mejorar sus vidas y tomar buenas decisiones sobre el futuro. Hay muchas personas y organizaciones que toman decisiones que afectan nuestras vidas. Buena información permite a estas ONGs (organizaciones no gubernamentales), gobiernos y ciudadanos tomar mejores decisiones, y con suerte nos hacen la vida mejor. Los mapas son una buena manera de transmitir información.
Los mapas son símbolos visuales de nuestro mundo. A menudo puede demostrar una idea mejor que las palabras. Esto a su vez puede ayudarnos a responder preguntas importantes. ¿Dónde está la escuela u hospital más cercano? ¿Quién tiene menos acceso a estas instalaciones? ¿Dónde está la pobreza más problemática? Preguntas como éstas pueden a menudo expresarse mejor con mapas, y los mapas pueden ayudar a encontrar soluciones a estas preguntas.
Como ejercicio, consiga un bolígrafo y papel y dibuje un mapa de su ciudad o pueblo. ¿Cuáles son las cosas más importantes para incluir en el mapa? ¿Cuál es la información más importante? Dedique unos minutos a hacer su mapa, y cuando haya terminado, piense por qué la información que se incluye es importante, y para quién podría ser importante.
Si su ciudad es como la mayoría, es posible que haya dibujado unas líneas para representar caminos, posiblemente, un río o arroyo. Tal vez haya agregado edificios importantes tales como escuelas y oficinas, campos, o límites. Lo que sea que dibujaste, probablemente usó símbolos - una línea para simbolizar un camino, un cuadrado para simbolizar un edificio, y así sucesivamente. Su mapa es una representación de lo que hay en el suelo.
Su mapa es informativo. Puede usar un mapa como este para explicar a alguien donde están diferentes lugares, donde están los problemas en su comunidad, o simplemente para ayudar a alguien a encontrar su camino. El uso de su mapa es limitado, ya que sólo hay una copia del mapa. El modo en que dibujó puede tener sentido para ti, pero quizás no para otra persona que habría dibujado su propio mapa de una manera diferente. Debido a que su mapa solo está en el papel, es difícil llevar esa información a otras personas. Esta es la razón por la que hacer su mapa en un equipo, de tal manera que cualquiera pueda acceder, pueda ser mucho más valioso.
OpenStreetMap es una herramienta para crear y compartir la información del mapa. Cualquiera puede contribuir a OSM, y miles de personas se suman al proyecto cada día. Los usuarios dibujan mapas en sus equipos, en lugar de papel, pero como veremos en esta guía, dibujar un mapa en un equipo no es tan diferente de dibujarlo en papel. Aún dibujamos líneas para representar los caminos, campos, y cualquier otra cosa, y también representamos a las escuelas y hospitales con símbolos. Lo importante es que los mapas de OSM se guardan en Internet, y cualquiera puede acceder a ellos en cualquier momento, totalmente libre.
Esperamos que encuentre OpenStreetMap útil e interesante en su trabajo. Siguiendo esta guía, debería ser capaz de arrancar rápidamente elaborando mapas digitales con OpenStreetMap.
Nota
Texto extraído de la portada del HOT en el wiki de OSM, se recomienda visitar la página (especialmente la versión en inglés) para obtener abundantes referencias a actividades actuales del HOT.
Desde los primeros tiempos de OpenStreetMap, se anticipó que los datos libres y abiertos iban a ser tremendamente beneficiosos para la ayuda humanitaria y el desarrollo económico.
La idea se confirmó durante el terremoto de Haití en 2010 . Poco después, en agosto de 2010, HOT se constituyó en Estadus Unidos como una organización sin ánimo de lucro y obtuvo el registro 501(c)3 como organización benéfica en 2013.
Todo el mundo es bienvenido a contribuir en los objetivos del HOT a través del gestor de tareas Tasking Manager); todo lo que se necesita es un usuario en OpenStreetMap.
Solo se pide que se intente seguir el mismo código de conducta que siguen los miembros con derecho a voto, que se puede ver en el código de membresía del HOT (en inglés).
Nota
Material extraído del taller de OSM, JOSM y Tillemill
Los mapas se realizan siguiendo 3 pasos:
Los datos se recopilan por observación directa, preferentemente empleando GPS, aunque pueden emplearse otros medios como fotografía aérea si los derechos de la imagen lo permite. Aún así el proyecto recomienda conocer y recorrer la zona personalmente para garantizar la máxima calidad del resultado.
Los orígenes más comunes de datos son:
Una vez recopilada la información, esta debe ser incorporada a la base de datos de OSM. Para ello existen diversos medios, aunque principalmente se emplean clientes web como iD:
y el cliente de escritorio JOSM:
En cualquier caso lo más frecuente es convertir los datos GPS tomados al formato estándar GPX y subirlos posteriormente al repositorio de trazas GPS de OSM de forma que cualquier usuario pueda acceder a dicha información.
Empleando alguna de las aplicaciones que lo permiten; como iD, Potlach2, JOSM o Merkaartor por ejemplo; se descarga del servidor la porción de información que se quiere editar, para que esta se ajuste a los estándares acordados en el proyecto.
OpenStreetMap solo reconoce 2 tipos de datos gráficos:
OpenStreetMap reconoce 2 tipos de datos alfanuméricos:
El modelo de datos alfanuméricos de OSM se basa en el uso de etiquetas tags consensuadas por los usuarios a través de la wiki del proyecto.
Las etiquetas se definen por un par clave/valor. Actualmente hay casi 1000 claves “oficialmente” reconocidas y varios centenares propuestos.
Esta información adicional alfanumérica permite clasificar los datos para que el proceso de renderizado los muestre correctamente representados.
El proyecto OSM tiene varios motores de renderizado que permiten obtener una imagen de la información de la base de datos. El principal motor de renderizado es el que utiliza la biblioteca Mapnik. Un proceso automático toma los datos desde la base de datos principal y los carga en una base de datos Postgresql/PostGIS para posteriormente renderizar tiles de 256x256 que son normalmente consumidos desde la web principal del proyecto.
Nota
Material extraído del taller de OSM, JOSM y Tillemill
Daremos un rápido vistazo a la API de OSM y al formato XML de OSM.
La API de OSM es el único medio de modificar datos de la base de datos. Todas las aplicaciones que quieran obtener datos y subir datos a la base de datos de OSM lo tienen que hacer usando dicha API.
La versión actual de la API es la v0.6 y su uso es obligatorio desde 2009.
La API es una API RESTful de edición, esto quiere decir que utiliza directamente el HTTP para manipular la información y que recibe los mensajes y resultados en formato XML.
Toas las consultas se realizan de forma anónima, pero las actualizaciones se realizan usando OAuth (son necesarios un usuario y una contraseña válidos)
La API da soporte de versionado directamente, de forma que todas las actualizaciones quedan registradas con un número de versión de forma que permite detectar errores y conflictos de manera eficiente.
Las descargas están limitadas a cuadrados de 15’ de arco y además existe una limitación de ancho de banda, de forma que si se excede la primera limitación el sistema responde un mensaje de error y si se excede la segunda se bloquearán los accesos de manera temporal.
La API no está enfocada a consulta, sino a edición, para consultar la base de datos es más eficiente emplear otros métodos que básicamente consisten en obtener uno de los archivos Planet, convertirlo a una base de datos local y consultar sobre ésta.
Ejemplos de 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
Ejemplo de respuesta:
<osm>
<changeset>
<tag k="created_by" v="JOSM 1.61"/>
<tag k="comment" v="Just adding some streetnames"/>
...
</changeset>
...
</osm>
Ejemplos de 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
Ejemplo de respuesta:
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="OpenStreetMap server">
<gpx_file id="836619" name="track.gpx" lat="52.0194" lon="8.51807"
user="Hartmut Holzgraefe" visibility="public" pending="false"
timestamp="2010-10-09T09:24:19Z">
<description>PHP upload test</description>
<tag>test</tag>
<tag>php</tag>
</gpx_file>
</osm>
El formato de intercambio estándar de la API es un XML compuesto por combinaciones de los cuatro elementos principales.
Los Nodos tienen, entre otras informaciones, las siguientes características:
Además el Nodo puede contener información asociada al estilo OSM a traves de pares key/value
<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>
Las Vías son listas ordenadas de nodos que tienen información como:
Debe tener una lista de nodos agrupados cada uno con su etiqueta XML nd con la referencia id de los nodos que agrupa. Además la Vía puede contener información asociada al estilo OSM a traves de pares key/value
<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="333725774"/>
<nd ref="333725776"/>
<nd ref="823771"/>
<tag k="highway" v="unclassified"/>
<tag k="name" v="Clipstone Street"/>
<tag k="oneway" v="yes"/>
</way>
Las Relaciones son listas ordenadas de objetos, son objetos en si mismas y sirven para definir relaciones entre cualquier tipo de objeto. También tienen información como:
Y además en una etiqueta XML member definir atributos type, id y role que permiten configurar la relación y unas etiquetas tag para describir el tipo de relación.
<relation id="77" visible="true"
timestamp="2006-03-14T10:07:23+00:00" user="fred">
<member type="way" id="343" role="from" />
<member type="node" id="911" role="via" />
<member type="way" id="227" role="to" />
<tag k="type" v="restriction"/>
<tag k="type" v="no_left_turn"/>
</relation>
Pese a ser una primitiva reconocida por la API de OSM en realidad está integrada dentro de las otras primitivas y nos permite definir los atributos de las mismas.