¿Cómo dibujaría y visualizaría mapas personalizados basados ​​en datos OSM?

35

Me gustaría poder utilizar los datos de openstreetmap para una región específica como fuente y "extraer" de eso el mapa de mejoras de infraestructura, principalmente carreteras.

Quiero que sea autohospedado (sin estropear ningún dato en los servidores OSM reales), quiero tener una flexibilidad y un nivel de detalle bastante grandes en el proceso de edición y sería bueno presentarlo de una manera bonita.

No estoy familiarizado con muchos programas SIG. En realidad, no es tan importante tener datos OSM como fuente, también podría ser una imagen de satélite. Lo importante: dibujo flexible vinculado a coordenadas reales y visualización del mapa.

¿Dónde puedo comenzar?

Espero que esta pregunta tenga sentido aquí :)

arconaut
fuente
¿Qué plataforma estás mirando? ¿Puedes usar Google Maps para dibujar formas?
Jared Updike
Jared, ¿te refieres a la sencilla interfaz "Mis mapas" de Google Maps? Eso no es suficiente para mí :) Necesito un nivel de detalle mucho mayor. ¿O quieres decir algo más?
arconaut
¿Para qué parte del mundo quieres hacer esto? Hay muchos datos de carreteras en el dominio público, en algunas partes del mundo.
DJ

Respuestas:

16

El tipo de datos XML de OpenStreetMap .osm se puede analizar y representar en varios paquetes de software. Para un cajón de mosaicos de mapas personalizados algo llave en mano, sugiero: http://tiledrawer.com --- un producto que utiliza Amazon EC2 y por Michal Migurski - quien proporciona otros punteros en este hilo :)

También puede consultar "Construya su propio servidor OpenStreetMap" http://weait.com/content/build-your-own-openstreetmap-server Utiliza una pila Ubuntu 10.04 / PostGIS / Mapnik.

Por supuesto, mire la licencia de OpenStreetMap antes de construir. http://wiki.openstreetmap.org/wiki/OpenStreetMap_License .

Glennon
fuente
Gracias, me encontré con TileDrawer una vez, pero según tengo entendido, necesito tener una instancia de Amazon EC2 para eso. No quiero hacer eso por ahora, tal vez soy demasiado vago :)
arconaut
He leído que se puede ejecutar la imagen EC2 en su propia máquina usando VirtualBox.
James
El sitio web de Tiledrawer fue abandonado, el repositorio de Github todavía está allí pero también inactivo: github.com/migurski/Tile-Drawer (ver también en el Wiki de OSM )
chrki
11

He encontrado exactamente lo que necesitaba: Maperitivo . Esta aplicación puede cargar datos OSM (* .osm puede ser guardado por JOSM fi) y generar imágenes agradables basadas en reglas muy flexibles y personalizables.

arconaut
fuente
Descubrí que Maperitive se cuelga si intento cargar un archivo .osm.bz2 o incluso un archivo .osm.pbf. Los archivos que he probado han sido de alrededor de 185 MB, por lo que nada cerca del tamaño del archivo planet.osm.bz2 (¡19 GB!) Que realmente necesito. ¿Cómo cargaste los archivos?
Drew Noakes el
Drew, creo que solo he probado áreas mucho más pequeñas.
arconaut
Maperitive es de código cerrado, construido sobre .Net, no funciona en Linux. Pero definitivamente tiene una ventaja sobre Mapnik: un estilo más fácil.
Vanuan
3
Sugiero TileMill como una alternativa de código abierto.
Vanuan
9

Dos posibilidades, dependiendo de la cantidad de datos OSM que desee editar.

Una es alojar su propio servidor OSM, con una copia de los datos que puede editar libremente. El software para esto se conoce como "The Rails Port", se puede encontrar aquí: http://wiki.openstreetmap.org/wiki/The_Rails_Port

Otra es utilizar la cartografía en mosaico de OSM como fondo para sus propios datos. Realmente no estoy calificado para responder a esta, pero puede encontrar que herramientas como QGIS (http://www.qgis.org) pueden proporcionar el rastreo de nuevas formas basadas en un mapa base de OSM.

Michal Migurski
fuente
8

La creación del mapa se divide en varios pasos:

  • ingresando los geodatos (que son puntos, líneas y polígonos con etiquetas apropiadas)
  • estilo (especifique la apariencia de la entidad en el mapa)
  • renderizado en una imagen ráster (transforma geodatos y estilo en una imagen usando software de renderizado)

Desearía una herramienta que haga todas las peculiaridades detrás de una interfaz de usuario fácil de usar. Pero desafortunadamente, no existe tal herramienta (con suerte, la habrá). Por lo tanto, debe elegir una herramienta dedicada para cada paso.

Yo uso la siguiente combinación de herramientas / flujo de trabajo:

Entrar / descargar los geodatos

  • Editor JOSM :
    • descargar un mapa del servidor osm
    • editar un mapa
    • cargar sus cambios en el servidor osm (¿por qué no comparte su trabajo?)
    • guardar un mapa en un archivo * .osm
  • PostGIS / osm2pgsql
    • actualizar el archivo de estilo de importación si es necesario
    • importar un mapa al servidor local

Si no desea compartir su trabajo, puede configurar el servidor OSM local y hacer que JOSM funcione con él (haciendo innecesario guardar un mapa en un archivo * .osm y usar osm2pgsql). Aún así, tenga en cuenta la licencia si utiliza partes de datos OSM.

Estilo

El diseño consta de dos pasos:

  • configurar capas / fuente de datos
  • personalizar líneas / polígonos / puntos / salida de texto.

Hay dos formatos para diseñar un mapa: archivo de estilo mapnik "en bruto" y CartoCSS.

  • Mapnik es una biblioteca de renderizado que impulsa el sitio OSM.
    • Configurar y editar archivos de estilo mapnik
    • abra el archivo de estilo en el visor mapnik

Un archivo de estilo Mapnik "en bruto" es engorroso de editar, y CartoCSS una alernative más simple. CartoCSS (anteriormente Cascadenik) se puede convertir en un archivo de estilo mapnik. Tilemill es una herramienta que uso para editar / previsualizar CartoCSS.

  • Tilemill .
    • Estilo / vista previa de su mapa en tilemill
    • exportar al archivo mapnik * .xml.

Representación

  • Script de Python personalizado para mapnik
    • Actualizar cuadro delimitador / nivel de zoom / tamaño
    • renderizar mapa al archivo * .png.

[Opcional] Traiga su mapa en línea

Por supuesto, puede usar un archivo * .png grande para su mapa, ¡pero imagine cuánto tiempo tomaría descargarlo! Entonces divide su mapa en mosaicos en diferentes niveles de zoom.

  • Tilemill -> Mapnik -> MBTiles -> Mapbox

    • Puede poner su mapa en línea utilizando Tilemill y MapBox.

Desafortunadamente, para actualizar su mapa de acuerdo con las nuevas ediciones de OSM, aún tendrá que descargarlo y renderizarlo localmente.

Entonces, hay una mejor solución: CartoDB. CartoDB es compatible con CartoCSS. Con él no necesitas instalar nada localmente. Simplemente importe sus datos, diseñe con CartoCSS y haga clic en el botón compartir. Sin embargo, hay un límite de tamaño de base de datos libre. Pero como es de código abierto, puede alojarlo por su cuenta. Hay otra limitación: solo puede visualizar puntos, líneas o polígonos.

PD

Cada herramienta tiene sus propias limitaciones, así que intenta experimentar.

Vanuan
fuente
3

Si está buscando un buen editor de mapas personalizado, eche un vistazo a OCAD , es un software profesional de dibujo de mapas. Hay una versión anterior disponible de forma gratuita en la página de descarga.

No tiene ningún soporte especial para OSM, pero siempre puede usar una imagen exportada desde OSM como fondo.

Jonas
fuente
3

Hay una opción más simple para que juegues con los datos de Open Street Map en formato OSM. Puede probar FME desde Safe Software (www.safe.com)

Para obtener más información, puede leer sobre el soporte de OSM aquí: http://blog.safe.com/2010/03/sharing-your-data-on-openstreetmap/

He usado FME un par de veces para crear conjuntos de datos de demostración para capacitación en mi región utilizando datos FME y OSM

~ SRG

SRG
fuente
2

Puede usar The Style Editor de Cloudmade (brazo comercial de OSM)

Gratis para registrarse y usar como individuo.

Con una muy buena interfaz de usuario podrá crear su propio estilo de mapa. Cuando haya personalizado su mapa con sus colores, etc., puede usarlo para incrustar o crear un enlace a la página con su mapa personalizado.

Vea la publicación del blog http://mapperz.blogspot.com/2009/03/cloudmade-map-editor.html (más actualizaciones allí)

Mapperz
fuente
Cloudmade no es parte de OpenStreetMap: ¿CloudMade es parte de OpenStreetMap?
scruss
1

Los mapas oficiales de OSM se diseñan con TileMill y se representan con Mapnik. Ambas herramientas son extremadamente potentes y flexibles. ¡Lo que es bueno para OSM, debería ser bueno para ti!

Desafortunadamente, el procedimiento de configuración de TileMill es complicado, al menos si desea representar los datos de OSM. Hay muchas descripciones para Ubuntu o Mac , pero los comentarios en los foros muestran que el procedimiento es complicado en Windows.

Encontrará una descripción detallada sobre la representación de mapas con TileMill en Windows en el Wiki de TopoMapCreator .

Sigue el procedimiento clásico:

  • Paso A: descargar e instalar el software requerido (principalmente una base de datos Postgresql / PostGis)
  • Paso B: descarga e importación de datos OSM a la base de datos
  • Paso C: descarga y procesamiento de polígonos terrestres
  • Paso D: Crear un proyecto TileMill
  • Paso E: diseñar y exportar el mapa con TileMill

Más en el Wiki de TopoMapCreator .

Günter Schmudlach
fuente
1

Otra forma de hacer mapas personalizados con datos OSM es con la biblioteca Mapsense.js y los mosaicos vectoriales de Mapsense Earth. Hay una interfaz de usuario para elegir colores en http://styler.mapsense.co/ y demostraciones que muestran el CSS y JavaScript en developer.mapsense.co/examples/

Una ventaja de una API como esta es que puede agregar cualquier cosa que desee con javascript / d3 (imágenes satelitales, otras geo / topojson, etc.).

Divulgación completa: trabajo en Mapsense. :)

jmk
fuente
0

Si solo desea crear una imagen de mapa estática, es posible que desee verificar de esta manera para crear un archivo .svg inkscape a partir de .osm s, aunque es un poco lento. Luego puede abrir el archivo .svg, o si desea convertirlo a cualquier otro formato (png?) O incluso cargarlo en 3d studio o Blender:) ...

(Además, JOSM parece tener un complemento que hace osmarender, pero no he podido ejecutarlo esta vez que lo intenté ...)

ntg
fuente