Azioni

Differenze tra le versioni di "TMap"

Da MontelLUG WIKI.

(Opzioni)
(Opzioni)
Riga 157: Riga 157:
 
| valign="top" |--fontSize <int><br>--fs  
 
| valign="top" |--fontSize <int><br>--fs  
 
|consente di specificare la dimensione del carattere da utilizzare per scrivere i testi
 
|consente di specificare la dimensione del carattere da utilizzare per scrivere i testi
 +
|-
 +
| valign="top" |--fontRotation<int><br>--fr
 +
|consente di specificare l'angolo di rotazione da utilizzare per scrivere i testi
 
|-
 
|-
 
| valign="top" |--fontColor <RRGGBB><br>(--fc)  
 
| valign="top" |--fontColor <RRGGBB><br>(--fc)  

Versione delle 16:04, 16 feb 2014

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 con parametri differenti per affinare la ricerca.

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

In alternativa è possibile utilizzare una sintassi abbreviata:

tmap.exe --extract-poly mappa.pbf regione,name=Veneto veneto.poly
tmap.exe --extract-poly mappa.pbf provincia,name=Treviso treviso.poly
tmap.exe --extract-poly mappa.pbf città,name=Montebelluna montebelluna.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 strade ed edifici

Per disegnare le strade o gli edifici 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

Per disegnare gli edifici o un'area un generale aggiungiamo l'opzione --area :

tmap.exe --draw-ways mappa.pbf building=* montebelluna.png --scale 20000 --xml-info --ds mixed --dfc FF0000 --doc 000000 --ds 1 --area


Opzioni

--scale <int> la dimensione finale dell'immagine sarà width=<larghezza_chilometri>*scale, height=<altezza_chilometri>*scale
--debug abilita la visualizzazione delle informazioni di debug
--xml-info memorizza alcune informazioni relativa alla mappa su un file xml in modo da poter aggiungere ulteriori dettagli in un secondo momento
--drawStyle <string>
(--ds)
consente di specificare la modalità di visualizzazione di un oggetto. I valori possibili sono:
  • fill (riempimento)
  • outline (solo contorno)
  • mixed (riempimento + contorno)
--drawFillColor <RRGGBB>
(--dfc)
consente di specificare il colore da utilizzare per il riempimento in formato ARGB. Il canale alpha (trasparenza) è supportato solo da alcuni formati immagine. I valori possibili sono:
  • RGB
  • RRGGBB
  • AARRGGBB
--drawFillColor2 <RRGGBB>
(--dfc2)
consente di specificare il colore da utilizzare per il riempimento in formato ARGB delle inner ways (--draw-poly). Il canale alpha (trasparenza) è supportato solo da alcuni formati immagine. I valori possibili sono:
  • RGB
  • RRGGBB
  • AARRGGBB
--drawOutlineColor <RRGGBB>
(--doc)
consente di specificare il colore da utilizzare per il contorno in formato ARGB. Il canale alpha (trasparenza) è supportato solo da alcuni formati immagine. I valori possibili sono:
  • RGB
  • RRGGBB
  • AARRGGBB
--drawOutlineColor2 <RRGGBB>
(--doc2)
consente di specificare il colore da utilizzare per il contorno in formato ARGB delle inner ways (--draw-poly). Il canale alpha (trasparenza) è supportato solo da alcuni formati immagine. I valori possibili sono:
  • RGB
  • RRGGBB
  • AARRGGBB
--drawWidth <int>
(--dw)
consente di specificare lo spessore della linea di riempimento (--draw-ways)
--drawOutlineWidth <int>
(--dow)
consente di specificare lo spessore della linea di contorno
--drawSymbol <string>
Consente di specificare come deve essere visualizzato il nodo. I valori possibili sono:
  • square
  • circle
  • marker <nome_file.png>
--pos <int o string>
indica in quale posizione deve essere messo il testo descrittivo di un nodo o il relativo marker. I valori possibili sono:
  • 1 o topLeft
  • 2 o topMiddle
  • 3 o topRight
  • 4 o centerLeft
  • 5 o centerMiddle
  • 6 o centerRight
  • 7 o bottomLeft
  • 8 o bottomMiddle
  • 9 o bottomRight
--drawName
indica che devono essere visualizzati i nomi dei nodi (tag name)
--fontName <string>
--fn
consente di specificare il tipo di carattere da utilizzare per scrivere i testi (es. Arial)
--fontSize <int>
--fs
consente di specificare la dimensione del carattere da utilizzare per scrivere i testi
--fontRotation<int>
--fr
consente di specificare l'angolo di rotazione da utilizzare per scrivere i testi
--fontColor <RRGGBB>
(--fc)
consente di specificare il colore da utilizzare per scrivere i testi. Il canale alpha (trasparenza) è supportato solo da alcuni formati immagine. I valori possibili sono:
  • RGB
  • RRGGBB
  • AARRGGBB
--language <string>
consente di specificare, se presente, una preferenza linguistica per i nomi visualizzati (es, it)
--area
indica che le way sono aree (edifici, piazze, ...)

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