Come disegnare e visualizzare mappe personalizzate basate sui dati OSM?


35

Vorrei poter utilizzare i dati openstreetmap per una regione specifica come fonte e "trarre" da ciò la mappa dei miglioramenti dell'infrastruttura, principalmente strade.

Voglio che sia ospitato da solo (senza rovinare alcun dato sui server OSM reali), voglio avere una grande flessibilità e un livello di dettaglio nel processo di modifica e sarebbe bello renderlo in modo carino.

Non ho familiarità con molti software GIS. In realtà non è così importante avere i dati OSM come fonte, potrebbe anche essere un'immagine satellitare. Le cose importanti: il disegno flessibile associato a coordinate reali e la visualizzazione della mappa.

Dove potrei iniziare?

Spero che questa domanda abbia un senso qui :)


Quale piattaforma stai guardando? Puoi usare Google Maps per disegnare forme?
Jared Updike,

Jared, intendi la semplice interfaccia "Le mie mappe" di Google Maps? Non è abbastanza per me :) Ho bisogno di un livello di dettaglio molto maggiore. O intendi qualcos'altro?
arconauta

Per quale parte del mondo vuoi farlo? Ci sono molti dati stradali di dominio pubblico, in alcune parti del mondo.
djq

Risposte:


16

Il tipo di dati XML .osm di OpenStreetMap può essere analizzato e reso in numerosi pacchetti software. Per un cassetto di tessere di mappa personalizzato in qualche modo chiavi in ​​mano, suggerisco: http://tiledrawer.com --- un prodotto che utilizza Amazon EC2 e Michal Migurski - che fornisce altri suggerimenti in questo thread :)

Puoi anche dare un'occhiata a "Crea il tuo server OpenStreetMap" http://weait.com/content/build-your-own-openstreetmap-server Utilizza uno stack Ubuntu 10.04 / PostGIS / Mapnik.

Certo, ti preghiamo di guardare la licenza OpenStreetMap prima di costruire. http://wiki.openstreetmap.org/wiki/OpenStreetMap_License .


Grazie, mi sono imbattuto in TileDrawer una volta, ma a quanto ho capito devo avere un'istanza Amazon EC2 per questo. Non voglio farlo per ora, forse sono solo troppo pigro :)
arconautico

Ho letto che puoi eseguire l'immagine EC2 sul tuo computer usando VirtualBox.
James,

Il sito Web di Tiledrawer è stato abbandonato, il repository Github è ancora lì ma anche inattivo: github.com/migurski/Tile-Drawer (vedi anche nel Wiki OSM )
chrki

11

Ho trovato esattamente ciò di cui avevo bisogno: Maperitive . Questa applicazione può caricare dati OSM (* .osm può essere salvato da JOSM fi) e renderizzare belle immagini basate su regole molto flessibili e personalizzabili.


Ho scoperto che Maperitive si blocca se provo a caricare un file .osm.bz2 o anche un file .osm.pbf. I file che ho provato sono stati di circa 185 MB, quindi nulla di simile alla dimensione del file planet.osm.bz2 (19 GB!) Di cui ho davvero bisogno. Come hai caricato i file?
Drew Noakes,

Drew, penso di aver provato solo aree molto più piccole.
arconauta

Maperitive è un codice sorgente chiuso, costruito su .Net, non funziona su Linux. Ma ha definitivamente uno dei vantaggi rispetto a Mapnik: uno stile più semplice.
Vanuan,

3
Suggerisco TileMill come alternativa open source.
Vanuan,

9

Due possibilità, a seconda della quantità di dati OSM stessi che si desidera modificare.

Uno è di ospitare il proprio server OSM, con una copia dei dati che è possibile modificare liberamente. Il software per questo è noto come "The Rails Port", può essere trovato qui: http://wiki.openstreetmap.org/wiki/The_Rails_Port

Un altro è utilizzare la cartografia piastrellata di OSM come sfondo per i tuoi dati. Non sono veramente qualificato per rispondere a questo, ma potresti scoprire che strumenti come QGIS (http://www.qgis.org) possono fornire la traccia di nuove forme basate su una mappa di base OSM.


8

La creazione della mappa è suddivisa in diversi passaggi:

  • inserendo i geodati (che sono punti, linee e poligoni con tag appropriati)
  • stile (specifica l'aspetto della caratteristica sulla mappa)
  • rendering in un'immagine raster (trasforma i geodati e lo stile in un'immagine usando il software di rendering)

Vorresti uno strumento che esegua tutte le stranezze dietro un'interfaccia utente facile da usare. Ma sfortunatamente, non esiste uno strumento del genere (si spera, ci sarà). Quindi, devi scegliere uno strumento dedicato per ogni passaggio.

Uso la seguente combinazione di strumenti / flusso di lavoro:

Immissione / download dei geodati

  • Editor JOSM :
    • scarica una mappa dal server osm
    • modifica una mappa
    • carica le modifiche sul server osm (perché non condividi il tuo lavoro?)
    • salva una mappa in un file * .osm
  • PostGIS / osm2pgsql
    • aggiornare il file di stile di importazione, se necessario
    • importa una mappa sul server locale

Se non vuoi condividere il tuo lavoro, puoi impostare il server OSM locale e far funzionare JOSM con esso (rendendo superfluo il salvataggio di una mappa in un file * .osm e l'utilizzo di osm2pgsql). Tuttavia, prestare attenzione alla licenza se si utilizzano parti dei dati OSM.

Messa in piega

Lo styling prevede due passaggi:

  • imposta layer / origine dati
  • personalizzare linee / poligoni / punti / output di testo.

Esistono due formati per lo stile di una mappa: file di stile mapnik "grezzo" e CartoCSS.

  • Mapnik è una libreria di rendering che alimenta il sito OSM.
    • Installa e modifica il file di stile mapnik
    • apri il file di stile nel mapnik viewer

Un file "raw" in stile Mapnik è scomodo da modificare e CartoCSS un semplice alernativo. CartoCSS (precedentemente Cascadenik) è convertibile in file di stile mapnik. Tilemill è uno strumento che uso per modificare / visualizzare in anteprima CartoCSS.

  • Tilemill .
    • Disegna / visualizza l'anteprima della tua mappa in un mulino
    • esporta in file mapnik * .xml.

interpretazione

  • Script Python personalizzato per mapnik
    • Aggiorna riquadro di delimitazione / livello / dimensioni zoom
    • esegue il rendering della mappa nel file * .png.

[Opzionale] Porta la tua mappa online

Ovviamente, puoi semplicemente usare un grande file * .png per la tua mappa, ma immagina quanto tempo ci vorrebbe per scaricarlo! Quindi dividi la mappa in riquadri con diversi livelli di zoom.

  • Tilemill -> Mapnik -> MBTiles -> Mapbox

    • Puoi portare la tua mappa online usando Tilemill e MapBox.

Sfortunatamente, per aggiornare la tua mappa in base alle nuove modifiche OSM, dovrai comunque scaricarla e renderizzarla localmente.

Quindi, c'è una soluzione migliore: CartoDB. CartoDB supporta CartoCSS. Con esso non è necessario installare nulla a livello locale. Basta importare i tuoi dati, stile con CartoCSS e fare clic sul pulsante Condividi. C'è un limite di dimensioni db gratuito però. Ma dal momento che è open source puoi ospitarlo da solo. C'è un altro limite: puoi solo visualizzare punti o linee o poligoni.

PS

Ogni strumento ha i suoi limiti, quindi prova a sperimentare.



3

Se stai cercando un buon editor di mappe personalizzato, dai un'occhiata a OCAD , è un software di disegno di mappe professionale. C'è una versione precedente disponibile gratuitamente nella pagina di download.

Non ha alcun supporto speciale per OSM, ma puoi sempre usare un'immagine esportata da OSM come sfondo.


3

C'è un'opzione più semplice per giocare con i dati di Open Street Map in formato OSM. Puoi provare FME da Safe Software (www.safe.com)

Per maggiori informazioni puoi leggere sul supporto OSM qui: http://blog.safe.com/2010/03/sharing-your-data-on-openstreetmap/

Ho usato FME un paio di volte per creare set di dati dimostrativi per la formazione nella mia regione utilizzando i dati FME e OSM

~ SRG



2

È possibile utilizzare The Style Editor da Cloudmade (braccio commerciale di OSM)

Liberi di iscriversi e utilizzare come individuo.

Con un'ottima interfaccia utente sarai in grado di creare il tuo stile di mappa. Dopo aver personalizzato la tua mappa con i tuoi colori ecc., Puoi usarla per incorporare o creare un collegamento alla pagina con la tua mappa personalizzata.

Vedi il post sul blog http://mapperz.blogspot.com/2009/03/cloudmade-map-editor.html (altri aggiornamenti lì)


Cloudmade non fa parte di OpenStreetMap: CloudMade fa parte di OpenStreetMap?
scruss

1

Le mappe OSM ufficiali vengono disegnate con TileMill e renderizzate con Mapnik. Entrambi gli strumenti sono estremamente potenti e flessibili. Ciò che è buono per OSM, dovrebbe essere buono per te!

Sfortunatamente la procedura di configurazione di TileMill è complicata, almeno se si desidera eseguire il rendering dei dati OSM. Ci sono molte descrizioni per Ubuntu o Mac , ma i commenti nei forum mostrano che la procedura è complicata su Windows.

Una descrizione dettagliata del rendering delle mappe con TileMill su Windows è disponibile nel Wiki di TopoMapCreator .

Segue la procedura classica:

  • Fase A: download e installazione del software richiesto (principalmente un database Postgresql / PostGis)
  • Passaggio B: download e importazione dei dati OSM nel database
  • Passaggio C: download ed elaborazione di poligoni terrestri
  • Passaggio D: creazione di un progetto TileMill
  • Passaggio E: progettazione ed esportazione della mappa con TileMill

Maggiori informazioni sul Wiki di TopoMapCreator .


1

Un altro modo per creare mappe personalizzate con dati OSM è con la libreria Mapsense.js e le tessere vettoriali di Mapsense Earth. C'è un'interfaccia utente per scegliere i colori su http://styler.mapsense.co/ e le demo che mostrano i CSS e JavaScript in developer.mapsense.co/examples/

Un vantaggio di un'API come questa è che puoi aggiungere qualsiasi altra cosa tu voglia con javascript / d3 (immagini satellitari, altri geo / topojson, ecc.).

Informativa completa: lavoro a Mapsense. :)


0

Se vuoi solo creare un'immagine di mappa statica, potresti voler controllare in questo modo per creare un file inkscape .svg da .osm s, tuttavia è un po 'lento. Puoi quindi aprire .svg, o se vuoi convertirlo in qualsiasi altro formato (png?) O persino caricarlo in 3d studio o Blender:) ...

(Inoltre, JOSM sembra avere un plugin che fa osmarender, ma non sono riuscito a eseguirlo questa volta che ho provato ...)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.