Azioni

Differenze tra le versioni di "TMap"

Da MontelLUG WIKI.

Riga 119: Riga 119:
 
* RRGGBB
 
* RRGGBB
 
* AARRGGBB
 
* AARRGGBB
 +
* nome colore in inglese
 
|-
 
|-
 
| valign="top" |--drawFillColor2 <RRGGBB><br>(--dfc2)  
 
| valign="top" |--drawFillColor2 <RRGGBB><br>(--dfc2)  
Riga 125: Riga 126:
 
* RRGGBB
 
* RRGGBB
 
* AARRGGBB
 
* AARRGGBB
 +
* nome colore in inglese
 
|-
 
|-
 
| valign="top" |--drawOutlineColor <RRGGBB><br>(--doc)  
 
| valign="top" |--drawOutlineColor <RRGGBB><br>(--doc)  
Riga 131: Riga 133:
 
* RRGGBB
 
* RRGGBB
 
* AARRGGBB
 
* AARRGGBB
 +
* nome colore in inglese
 
|-
 
|-
 
| valign="top" |--drawOutlineColor2 <RRGGBB><br>(--doc2)  
 
| valign="top" |--drawOutlineColor2 <RRGGBB><br>(--doc2)  
Riga 137: Riga 140:
 
* RRGGBB
 
* RRGGBB
 
* AARRGGBB
 
* AARRGGBB
 +
* nome colore in inglese
 
|-
 
|-
 
| valign="top" |--drawWidth <int><br>(--dw)  
 
| valign="top" |--drawWidth <int><br>(--dw)  
Riga 179: Riga 183:
 
* RRGGBB
 
* RRGGBB
 
* AARRGGBB
 
* AARRGGBB
 +
* nome colore in inglese
 
|-
 
|-
 
| valign="top" |--language <string><br>  
 
| valign="top" |--language <string><br>  

Versione delle 08:00, 18 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.

tmap.exe --draw-poly veneto.poly veneto.png --scale 2000 --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 --drawStyle outline --drawOutlineColor 000000 --drawOutlineWidth 5
tmap.exe --draw-poly treviso.poly veneto.png --drawStyle mixed --drawFillColor FFFF00 --drawOutlineColor 000000 --drawOutlineWidth 2
tmap.exe --draw-poly belluno.poly veneto.png --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 --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 --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 --ds mixed --dfc FF0000 --doc 000000 --ds 1 --area

Altri elementi non presenti in mappa

E' possibile introdurre altri elementi non presenti in mappa grazie alle funzioni --free-text, --free-rect e --free-ellipse, ad esempio per costruire una legenda della mappa o per indicazioni sul copyright.

tmap.exe --free-text veneto.png x y width height text <options>
tmap.exe --free-rect veneto.png x y width height <options>
tmap.exe --free-ellipse veneto.png x y width height <options>
tmap.exe --free-rect veneto.png x y radius <options>

Nella funzione --free-text i parametri width e height servono per posizionare il testo quando l'allineamento è diverso da topLeft.

E' possibile creare una immagine di partenza anche senza partire da dati OpenStreetMap grazie alla funzione --create-image. Questa funzione è utile se dobbiamo creare una legenda della mappa o se vogliamo dello spazio aggiuntivo intorno alla nostra mappa.

tmap.exe --create-image veneto.png width height
tmap.exe --create-image veneto.png lon_min lon_max lat_min lat_max <options>

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
--no-xml impedisce la memorizzazione di 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
  • nome colore in inglese
--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
  • nome colore in inglese
--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
  • nome colore in inglese
--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
  • nome colore in inglese
--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
  • nome colore in inglese
--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