Azioni

TMap

Da MontelLUG WIKI.

TMap

TMap nasce come strumento per creare delle mappe statiche utilizzando come sorgente i dati resi disponibili dal progetto OpenStreetMap. L'idea è nata dalla richiesta di un visitatore presente al Linux Day 2014 : come possiamo creare delle mappe personalizzate? TMap consente di visualizzare solo quello di cui si ha bisogno e ci assiste in tutte le fasi della creazione.

Requisiti

TMap per funzionare richiede la presenza di Osmosis. Questo programma è scaricabile all'indirizzo http://wiki.openstreetmap.org/wiki/Osmosis Il percorso di installazione di Osmosis deve essere inserito nella variabile di ambiente PATH.

Sulla mia LinuxMint ho aggiunto al file '/home/utente/.profile' la riga PATH="$PATH:/opt/osmosis/bin"


Download delle mappe

Innanzitutto bisogna scaricare le mappe del territorio che si vuole rappresentare. TMap scarica le mappe dal sito download.geofabrik.de per quelle internazionali oppure da geodati.fmach.it per i soli estratti regionali italiani.

tmap.exe --download asia
tmap.exe --download europe
tmap.exe --download europe/italy
tmap.exe --download valle-aosta
tmap.exe --download veneto

Conversione di una mappa

Le mappe sono scaricate normalmente in formato Protocol Buffer (PBF) perché i file sono più piccoli e più veloci da elaborare. Con Osmosis è possibile convertire le mappe anche in formato XML e viceversa.

osmosis --read-xml file=mappa.osm --write-pbf file=mappa.pbf
osmosis --read-pbf file=mappa.pbf --write-xml file=mappa.xml

Creare un estratto

Se si intende lavorare molto con uno specifico tipo di dati (ad esempio, i confini amministrativi), conviene creare un estratto dei dati. Il dato tra parentesi quadre indica semplicemente che il comando --tf (tag filter) può essere ripetuto più volte.

osmosis --read-pbf file=mappa.pbf --tf accept-relations boundary=administrative [ --tf accept-relations admin_level=4 ] --uw --un --write-pbf file=estratto.pbf

Estrarre un confine amministrativo

Possiamo estrarre un confine amministrativo, ad esempio quello della nostra città, con il comando --extract-poly. I significato di admin_level è ben documentato in http://wiki.openstreetmap.org/wiki/Key:admin_level

tmap.exe --extract-poly mappa.pbf boundary=administrative,admin_level=4,name=Veneto veneto.poly
tmap.exe --extract-poly mappa.pbf boundary=administrative,admin_level=6,name=Treviso treviso.poly
tmap.exe --extract-poly mappa.pbf boundary=administrative,admin_level=8,name=Montebelluna montebelluna.poly
tmap.exe --extract-poly mappa.pbf boundary=administrative,admin_level=8,name=Castelfranco\ Veneto castelfranco.poly

Iniziamo a vedere i primi risultati

Per disegnare il nostro confine su una immagine usiamo il comando --draw-poly. L'esempio seguente disegna l'area del Veneto di colore rosso e con un contorno nero di spessore 5 pixel. L'opzione --xml-info ci permetterà, in un secondo momento, di introdurre ulteriori contenuti nella mappa.

tmap.exe --draw-poly veneto.poly veneto.png --scale 2000 --xml-info --drawStyle mixed --drawFillColor FF0000 --drawOutlineColor 000000 --drawOutlineWidth 5


Ma se volessimo vedere le singole province?
tmap.exe --draw-poly veneto.poly veneto.png --scale 2000 --xml-info --drawStyle outline --drawOutlineColor 000000 --drawOutlineWidth 5
tmap.exe --draw-poly treviso.poly veneto.png --xml-info --drawStyle mixed --drawFillColor FFFF00 --drawOutlineColor 000000 --drawOutlineWidth 2
tmap.exe --draw-poly belluno.poly veneto.png --xml-info --drawStyle mixed --drawFillColor 00FFFF --drawOutlineColor 000000 --drawOutlineWidth 2
...

Disegnare dei punti di interesse

Per disegnare dei punti di interesse (o nodi in generale) utilizziamo il comando --draw-nodes. L'esempio seguente inserisce la posizione degli ottici presenti nel territorio:

tmap.exe --draw-nodes mappa.pbf shop=optician veneto.png --scale 2000 --xml-info --ds outline --dfc FF0000 --doc 000000 --dw 10 --dow 2 --dsym circle

E se volessimo anche il nome di questi negozi? Aggiungiamo al comando precendente queste opzioni:

--draw-name --fn Arial --fs 12 --fp topMiddle

E se volessimo dare una preferenza per il nome in una variante linguistica specifica? Aggiungiamo al comando queste opzioni:

--language en

E se volessimo velocizzare il comando usando più core? Aggiungiamo al comando queste opzioni (N = numero di core da utilizzare):

--core N

Disegnare le strade

Per disegnare le strade utilizziamo il comando --draw-ways. L'esempio seguente inserisce le strade più importanti:

tmap.exe --draw-ways mappa.pbf highway=primary veneto.png --scale 2000 --xml-info --ds fill --dfc 000000 --dw 10

Licenza

Il programma è un software libero rilasciato in licenza GPL.

Download

Potete scaricare i sorgenti oppure l'eseguibile

Contatti

Per qualsiasi richiesta e commento potete scrivere a stefano.fraccaro chiocciola gmail punto com