IT:Mappe OSM

Vedi anche...



Torna alle Tipologie di mappa
Torna al Portale Italiano

Mappe vettoriali da OpenStreetMap

In questa pagina sono raccolte informazioni utili per ricavare mappe vettoriali personalizzate da OSM, in particolare mappe escursionistiche ottimizzate per Russa GPS, software freeware per PC e PDA che supporta il formato .IMG oltre al formato proprietario .RUS convertibile da Mapedit.

Le stesse mappe possono essere utilizzate sui dispositivi portatili Garmin o da programmi che supportano il formato .IMG come gpsVP, Glopus o Navitel che utilizza un formato .nm2 convertibile da Mapedit.

Il vantaggio del formato vettoriale rispetto alle mappe raster (.jpeg, .map, .ecw) , oltre allla compattezza, è quello di potere sovrapporre vari strati e di gestirne la visualizzazione a seconda del livello di dettaglio impostato.

Utilizzando come base OpenStreetMap, si possono aggiungere altri "layer" vettoriali rappresentanti, ad esempio, le curve di livello del terreno oltre ad altri ottenibili da fonti diverse.

Russa GPS si presta molto bene ad essere utilizzato a questo scopo su dispositivi PDA con Windows CE: è una applicazione freeware leggera ed affidabile che consente la personalizzazione della modalità di rendering delle linee e delle aree.


A questo scopo si utilizzeranno alcune applicazioni descritte di seguito.

Le operazioni da effettuare sono:

  • Ottenere il file mappa in formato OSM
  • Ottenere il file contenente le curve di livello in formato OSM
  • Trasformarli in files .IMG.
  • Comporli tramite MapEdit


Ottenere le mappe in formato .OSM

Web browser

Limitatamente a piccole porzioni di territorio, il modo più veloce per scaricare mappe in formato .OSM è il browser.

Aprendo qualsiasi programma web browser (Mozilla firefox, Internet Explorer etc.) alla pagina OpensStreetMap e selezionando "Esporta" nella parte superiore della finestra, si aprirà una scheda dalla quale, selezionando l'opzione "Dati XML OpenStreetMap " tra i formati di esportazione, sarà possibile salvare sul proprio computer la mappa visualizzata nella finestra principale, o parrte di essa, nel formato .OSM.


JOSM

JOSM (it) può essere utilizzato per salvare i dati in formato .OSM, con il vantaggio di potere visualizzare sulla mappa l' area interessata o in alternativa definire i limiti di latitudine e longitudine.

Geofabrik

Geofabrik (en) mette a disposizione qua mappe in formato .OSM compresso nel formato .BZ2 relative all' Europa o divise in vari stati. E' il modo più veloce per ottenere mappe di grandi dimensioni.

Wget

Utilizzando le OSM Extended API (XAPI) e Wget è possibile ottenere mappe .OSM delimitate da coordinate geografiche definite.

Innanzi tutto è necessario scaricare da qui la versione compilata per Windows di Wget e quindi salvare il contenuto del file compresso in una cartella. Wget è un programma a riga di comando, per comodità può tornare utile creare nella stessa cartella un file .TXT da rinominare in .BAT contenente i parametri da passare a wget per effettuare il download del file .OSM.

Xapi è disponibile presso diversi server, ciascuno accessibile direttamente o tramite informationfreeway che reindirizzerà la richiesta ad un server a sua scelta.

Bisogna tenere presente che questi server possono essere momentaneamente non disponibili.

La forma del comando è la seguente: wget URL del server/map?bbox=left,bottom,right,top -O filename.osm

dove:

  • URL del server corrisponde ad uno dei server sopraelencati ( es.: http://www.informationfreeway.org/api/0.6/)
  • left è la longitudine del lato a sinistra (left) (lato più a overt) del rettangolo di selezione.
  • bottom è la latitudine del lato in basso (bottom) (lato più a sud) del rettangolo di selezione.
  • right è la longitudine del lato a destra (lato più a est) del rettangolo di selezione.
  • top è la latitudine del lato in alto (lato più a nord) del rettangolo di selezione.
  • filename è il nome del file che vogliamo ottenere.

Esempi

wget http://www.informationfreeway.org/api/0.6/map?bbox=11.54,48.14,11.543,48.145 -O pippo.osm
wget http://xapi.openstreetmap.org/api/0.5/map?bbox=11.54,48.14,11.543,48.145 -O pippo.osm

Nel file .BAT che avremo creato, sarà sufficiente scrivere la linea di comando desiderata, salvare il file ed eseguirlo per dare inizio al download. Poichè i dati sono in formato non compresso, il tutto può richiedere diverso tempo.

Tag Query

Con Xapi si può scegliere di estrarre una mappa contenente determinati tipi di nodi, ways e relazioni. Ad esempio, il comando:

 wget http://www.informationfreeway.org/api/0.6/way[mtb:scale=*][bbox=9.20,43.70,12.80,45.15] -O emilia_mtb.osm

otterrà come risultato un file .osm contenente solamente le way contrassegnate con il tag mtb:scale dell' Emilia Romagna.

E' anche possibile selezionare operatori multipli. ad esempio:

way[highway=motorway|motorway_link|trunk|primary]

otterrà un file contenente solo le highway=motorway, highway=motorway_link, highway=trunk e highway=primary.

Questo risulta estremamente utile per ottenere mappe personalizzate. Ulteriori dettagli sul wiki di XAPI.

Osmosis

Osmosis è una applicazione java da linea di comando per manipolare file .osm anche di grandi dimensioni.

Può unire due o più file in un unico, estrarre un bounding box da un file e molto altro ancora.

Dopo aver scaricato il file .zip e dopo averlo decompresso, sotto Windows un modo semplice di usare Osmosis è quello di creare dei file .bat nella directory \bin di osmosis e scriverci il comando da eseguire.

E' importante che i files da trattare siano anch'essi nella directory \bin di osmosis.

Ad esempio, per estrarre un bounding box dal file italy.osm.bz2 scaricato da Geofabrik e scriverlo sul file myplanet.osm:

osmosis --rx italy.osm.bz2 --bounding-box top=44.90 left=11.00 bottom=44.00 right=12.00 --write-xml myplanet.osm

Per unire i due file uno.osm e due.osm in un unico chiamato tre.osm:

osmosis --rx uno.osm --rx due.osm --merge --wx tre.osm

Quest'ultimo comando consente,ad esempio, di unire le curve di livello ottenute con Srtm2Osm alla mappa osm.

Fare riferimento alla guida del programma per le possibili opzioni.

Ottenere le linee di livello con Srtm2Osm

Srtm2Osm (en) è una applicazione da riga di comando che permette di ottenere le linee altimetriche ricavate dai dati Shuttle Radar Topography Mission (SRTM) di una certa porzione di terreno, direttamente in formato OpenStreetMap. L'ultima versione dell' applicazione è scaricabile da qui.

Uso dell' applicazione

Salvare il file .zip e scompattarlo in una cartella dove potremo impostare il file .bat contenente il comando ed i parametri necessari.

E' necessario specificare l' area da coprire ad altri parametri accessorii.

L' area da coprire si può specificare in tre modi:

  • Con l' opzione -bounds1 si possono specificare la minima e la massima latitudine/longitudine dell' area, per esempio:
-bounds1 46.51 15.57 46.5385 15.6356
  • Con l' opzione -bounds2 si può specificare la latitudine la longitudine del centro dell' area da oltre il raggio (in kilometri) . ad esempio:
-bounds2 46.51 15.57 10
  • Con l' opzione -bounds3 si può specificare l' URL della slippymap dell' area (l' URL deve essere racchiuso in parentesi). L' applicazione considererà il livello di zoom per determinare la grandezza dell' area da ottenere. Esempio:
-bounds3 "http://www.openstreetmap.org/?lat=47.63168944724306&lon=9.396385580645727&zoom=10&layers=0BF"

Attenzione: 46.51 sarà inyterpretato come 46.51 degrees, non come 46 gradi e 51 minuti.

Usando l' opzione -cat , l' applicazione aggiungerà un contour_ext tag addizionale per ogni linea di livello.

Il valore del tag rappresenterà la categoria della linea, (elevation_major, elevation_medium oppure elevation_minor).

Questo è molto utile per usare i dati con Mkgmap (en). Esempio:

-cat 400 100

marcherà le linee di livello che sono di altezza multipla di 400 mt come maggiori, quelle multiple di 100 mt come medie e le altre come minori.

Potremo quindi creare un file .bat nella stessa directory dove si trova il file Srtm2Osm.exe contenente il comando:

Srtm2Osm.exe -bounds1 46.51 15.57 46.5385 15.6356 -cat 200 50 -o miofile.osm

per ottenere i dati delle linee di livello nel file miofile.osm.

Per ottenere curve di livello di zone di grande dimensione si può procedere dividendo l' area in più parti da riunire poi con mapedit.

Indicativamente, una zona dell' estensione dell' Emilia Romagna può essere ottenuta dividendola in due parti.

Convertire le mappe da .OSM a .IMG

Mkgmap

Mkgmap (en) è un potente convertitore dal formato .OSM a .IMG, formato impiegato nei dispositivi Garmin e in programmi per PDA come Russa e gpsVP.

Personalizzando le definizioni di stile che il programma usa nella conversione, si possono modificare le corrispondenze tra i tag OSM ed i codici adottati dal formato .IMG adattandoli alle nostre necessità.

CreateIMG

CreateIMG è uno script batch che provvede a scaricare una mappa .OSM ed a tradurla nel formato .IMG di Garmin.

Per default scarica e converte la mappa dell' Italia, ma modificando alcuni parametri del file CreateIMG.bat è possibile ottenere altre mappe o tradurre un file .OSM qualunque ottenuto in precedenza.

CreateIMG impiega mkgmap per la conversione che può essere quindi completamente personalizzata.

Scaricate il file .zip e scompattatelo in una cartella.

Per convertire un file .OSM ottenuto tramite browser o Wget, sono necessarie le seguenti semplici operazioni:

  • Modificare il comando
     set country=italy 
    presente nel file CreateImg.bat in
    set country= 

In questo modo lo script chiederà sempre il nome del file da tradurre e, se lo troverà nella cartella OSM-Data, lo convertirà.

  • Trasferire il file .OSM da convertire nella cartella OSM-Data
  • Eseguire il file CreateImg.bat immettendo il nome del file da convertire.

Lo script, eseguendo mkgmap, può utilizzare diversi fogli di stile presenti nelle sottodirectory Styles.

Come vedremo in seguito, utilizzando un foglio di stile personalizzato è possibile definire la corrispondenza tra i tag OSM ed i codici del formato .IMG Garmin.

Per fare questo, basta modificare nella riga di comando del file CreateImg.bat il comando

set style=drivemap

specificando la directory contenente il foglio di stile scelto.

Mkgmap GUI

Mkgmap GUI è una interfaccia grafica di Mkgmap che consente la conversione in .IMG e l' unione di più files .OSM. Salvare il file mkgmapgui.jar nella stessa directory dove risiede Mkgmap.

Personalizzare le mappe .IMG

Mentre il formato usato da OSM impiega una serie di "tag" come ad esempio "highway=residential" per definire le entità , il formato .IMG sviluppato per i navigatori Garmin prevede dei codici numerici esadecimali che definiscono la tipologia dei punti, delle linee e delle aree.

I codici usati per le entità di tipo linea, ad esempio, sono i seguenti (tabella ricavata da GPS MapEdit):

CodiceCategoriaDescrizione
0x0000RoadsRoad
0x0001RoadsMayor highway
0x0002RoadsPrincipal highway
0x0003RoadsOther highway road
0x0004RoadsArterial roads
0x0005RoadsCollector roads
0x0006RoadsResidential streets
0x0007RoadsAlleyway/private driveway
0x0008RoadsHighway ramp, low-speed
0x0009RoadsHighway ramp, high-speed
0x000aRoadsUnpaved road
0x000bRoadsMajor highway connector
0x0006RoadsResidential streets
0x0007RoadsAlleyway/private driveway
0x0008RoadsHighway ramp, low-speed
0x0009RoadsHighway ramp, high-speed
0x000aRoadsUnpaved road
0x000bRoadsMajor highway connector
0x0014RoadsRailroad
0x0015WaterShoreline of water body
0x0016RoadsWalkway/trail
0x0018WaterStream
0x0019BoundariesTime-zone
0x001aWaterWater or rail ferry
0x001bWaterWater or rail ferry
0x001bWaterWater or rail ferry
0x001cBoundariesState/province boundary
0x001dBoundariesCounty/parish boundary
0x001eBoundariesInternational boundary
0x001fWaterRiver
0x0020ElevationMinor land contour
0x0021ElevationInterm. land contour
0x0022ElevationMajor land contour
0x0023ElevationMinor depth contour
0x0024ElevationInterm. depth contour
0x0025ElevationMajor depth contour
0x0026WaterIntermittent stream/ditch
0x0027Man madeAirport runway centerline
0x0028Man madeOil or water pipeline
0x0029Man madePower line
0x002aWaterMarine boundary (no line)
0x002bWaterMarine hazard (no line)


La conversione dei tag di attributo dei file .OSM in codici usati nel formato .IMG avviene tramite i fogli di stile presenti nelle sottocartelle "resources\styles\..." sia in Mkgmap che in CreateIMG che lo usa.

Aprendo i files "lines", "points" e "poligons" con un editore di sorgente, potremo vedere che questi files stabiliscono la corrispondenza tra i tag assegnati da OSM per definire linee, punti e poligoni ed i codici usati del formato .IMG.

Il foglio di stile assegna all' entità anche il nome alla way ed il livello di zoom a cui viene visualizzata oltre ad informazioni utili per il routing.

Ad esempio, la riga seguente:

 highway=motorway    [0x01 road_class=4 road_speed=6 resolution 14] 

assegnerà alle way con tag=motorway il codice 0x01 e le renderà visualizzabili dal livello di zoom 14 mentre la seguente:

highway=tertiary	{name '${name} (${ref})' | '${ref}' | '${name}' } 

comporrà il nome visualizzato delle highway=tertiary usando l' attributo "name" e l' attributo "ref".

In questo modo, ad esempio, si può visualizzare una highway=track mostrandone non solo il nome ma anche il grado (tracktype), il riferimento CAI, l' attributo btb:scale etc, riportando sulla mappa le informazioni contenute nel database OSM.

La seguente istruzione:

highway=unclassified & access=private & (area!=yes & area!=true & area!=1)	  [0x37 road_class=1 road_speed=1 resolution 22]

assegna il codice 0x37 alle highway=unclassified con access=private e non definite come area.

Questo sistema permette di creare categorie di way configurate a piacere ed alle quali assegnare un codice.

Codici personalizzati per Russa GPS

E' possibile definire ulteriori codici ed assegnarli a determinati tipi di linee per ottenere mappe personalizzate.

Il nuovo codice, una volta assegnato da Mkgmap tramite il foglio di stile "lines", deve poi essere supportato da Mapedit e quindi da Russa per la corretta visualizzazione dell' entità corrispondente.

La tabella seguente, frutto di prove empiriche, comprende una possibile serie di codici assegnabili alle way che rispondono a questi requisiti, completi della corrispondenza con i tag OSM che ho scelto di assegnargli e del livello di zoom a cui viene visualizzato.


CodiceTagLivello
0x0000higway=trunk_link16
0x0001higway=motorways, higway=motorways_link & lanes>114
0x0002higway=trunks16
0x0003higway=primary18
0x0004higway=secondary - secondary_link20
0x0005higway=tertiary - tertiary_link22
0x0006higway=unclassified, higway=residentials, higway=service, higway=living_street, highway=service, highway=living_street22
0x0007non usato
0x0008higway=primary_link18
0x0009higway=motorways_link14
0x000ahigway=track, surface=unpaved, highway=unsurfaced, highway=unpaved22
0x000bnon usato
0x000chigway=footway22
0x000dhigway=pedestrian22
0x000ehigway=track grade=122
0x000fhigway=track grade=222
0x0010higway=track grade=322
0x0011higway=track grade=422
0x0012higway=track grade=522
0x0013higway=steps24
0x0014railway=rail18
0x0015natural=coastline14
0x0016higway=cycleway24
0x0017higway=bridleway, higway=byway24
0x0018waterway=stream24
0x0019non usato
0x001aRoute=ferry18
0x001bnon usato
0x001cboundary=administrative, boundary=political22
0x001dboundary=administrative + admin_level<716
0x001eboundary=national, boundary=administrative+admin_level<314
0x001fwaterway=river, waterway=canal, waterway=drain22
0x0020contour=elevation + contour_ext=elevation_minor23
0x0021contour=elevation + contour_ext=elevation_medium21
0x0022contour=elevation + contour_ext=elevation_major20
0x0023non usato, riservato a contiur_ext=depth_minor
0x0024non usato, riservato a contiur_ext=depth_medium
0x0025non usato, riservato a contiur_ext=depth_major
0x0026non usato
0x0027aeroway=runway20
0x0028man_made=pipeline24
0x0029power=line24
0x0030highway=all + tunnel=yes14-22
0x0031natural=cliff24
0x0032barrier=wall, barrier=retaining_wall, barrier=city_wall, barrier=fence, barrier=hedge24
0x0033non usato
0x0034non usato
0x0035higway=path22
0x0036(higway=unclassified, higway=residentials) + cycleway=lane, cycleway=opposite_lane22
0x0037(higway=unclassified, higway=residential, higway=pedestrian) + access=private, highway=raceway22
0x0038aerialway=chair_lift, aerialway=drag_lift, aerialway=cable_car24
0x0039(higway=unclassified, higway=residential, higway=pedestrian) + access=permissive22
0x003dnon usato
0x003enon usato
0x003frailway=light_rail, railway=subway, railway=tram20


Come si può notare, alcune definizioni ricalcano quelle standard ma altre sono finalizzate esclusivamente ad essere mostrate da Russa con una renderizzazione distinta.

Dalla stessa mappa OSM, modificando il foglio di stile caricato da mgkmap, è quindi possibile ottenere file .IMG differenti a seconda dell' impiego previsto.

Alcuni codici non usati sono disponibili per ulteriori definizioni o per essere assegnati a layer importati da shapefile od altri.

Comporre i files .IMG com MapEdit

MapEdit è il programma impiegato per unire diversi files .IMG, per importare files .SHP e per salvare il tutto in vari formati vettoriali tra i quali .IMG (previa installazione di cGPSmapper), .RUS (usato da Russa GPS), oltre ad diversi altri formati vettoriali.

Altre interessanti funzionalità del programma, come il supporto a files .ecw e la visualizzazione in background delle foto satellitari di Google, sono disponibili nella versione a pagamento; per il nostro scopo è sufficiente la versione free.

Scaricato il programma e scompattato il file .zip, si può procedere creare la nostra mappa personalizzata innanzi tutto caricando il file .IMG contenente i dati .OSM convertiti.

E' possibile a questo punto anche editare le entità caricate, eliminando ad esempio quelle indesiderate selezionandole per tipologia e cancellandole.

Si può quindi procedere aggiungendo il file .IMG con le curve di livello ed eventualmente ritagliando la zona di interesse da una mappa più grande.

Ad esempio, si possono ottenere i files .IMG contenenti le curve di livello di tutta la vostra regione in un unico file per poi ritagliarsi di volta in volta la zona di interesse.

L' importazione di shapefile e l' unione di questi nella mappa è una funzionalità molto importante in quanto si possono aggiungere dati non presenti nel database OSM ma provenienti da altre fonti.

Ad esempio, si possono inserire i grafi estremamente dettagliati relativi all' idrografia ottenibili tramite WFS dal Portale Cartografico Nazionale o i tracciati dei sentieri CAI scaricabili dal sito cartografico dell' Emilia Romagna.

A questi dati si potrà assegnare, al momento dell' importazione su MapEdit, sia un codice relativo ad entità esistenti, sia un nuovo codice scelto tra quelli disponibili, a cui assegnare uno stile di visualizzazione tale da evidenziarlo in modo particolare.

Altra possibilità interessante è l' inserimento di itinerari pianificati nella mappa, a questo scopo si potrà tracciarli su Google Earth, salvarli come files .kml o .kmz, tradurli in .shp ed importarli in MapEdit assegnandogli un codice tra quelli disponibili per poterli evidenziare in uno stile personalizzato sia in Mapedit che in Russa GPS come vedremo tra breve.

Configurazione stili di MapEdit

Si può modificare a piacere lo stile di visualizzazione dei punti, linee ed aree su Mapedit modificando il file .TXT (versione decodificata dei file di stile .TYP del formato .IMG Garmin) presente nella directory _BookmarkTypes di MapEdit.

Il modo più semplice per editarlo, o per di crearne uno completamente nuovo e con parametri personalizzati, è quello di utilizzare questo sito dove è disponibile un ottimo editore online di file .TYP, con la possibilità di decodificarlo e salvarlo in formato .TXT.

Tramite questo editore si può mettere a punto il tipo di visualizzazione ottimale, sia su MapEdit che sui dispositivi Garmin.

Configurazione stili di Russa GPS

I files "day.skin" e "night.skyn", presenti nella cartella del programma, contengono rispettivamente le definizioni dello stile di visualizzazione diurno e di quello notturno.

Possono essere modificati con un editore testuale per ottenere lo stile desiderato delle linee e delle aree oltre che il colore dello sfondo definibile nella prima riga del file.

La righe riguardanti lo stile delle linee hanno questa struttura:

 4  0 solid 6 7  black solid 4 0 fdd6a4 medium  black false 

dove, nell' ordine, specifica:

- Codice della linea
- non usato
- tipo di linea (solid, dot)
- larghezza linea di fondo
- non usato
- colore linea di fondo
- tipo linea sovrapposta (solid, dot)
- larghezza linea sovrapposta
- non usato
- colore linea sovrapposta
- tipo di carattere dell' etichetta (medium, small)
- colore del carattere dell' etichetta
- etichetta sovrapposta o meno alla linea (true, false)

I colori usabili possono essere specificati sia con il nome (black, red etc.) sia con il codice esadecimale.

Il tipo di linea dot può avere larghezza solamente pari ad 1 e non è configurabile in lunghezza.

I campi definiti come "non usato" sembra non producano nessun cambiamento alla visualizzazione.

This article is issued from Openstreetmap. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.