Mappe¶
L’istruzione map permette di inserire mappe geografiche nell’output HTML, PDF e pTabsWeb.
Le mappe possono essere prodotte a partire da coordinate presenti nel file di dati (per esempio le coordinate che identificano il luogo dell’intervista) e/o da altre coordinate presenti in un file esterno o passate direttamente dallo script (per esempio le coordinate che identificano i punti di campionamento).
I grafici utilizzano OpenStreetMap.
Attenzione
Per produrre le mappe in formato PDF è necessaria una connessione internet attiva. Per visualizzare le mappe nel report HTML è necessaria una connessione internet attiva.
Opzioni per mappare i dati del dataframe:
Parametro Tipo Descrizione lat Varname il nome della varibile numerica che contiene la latitudine in formato decimale lng Varname il nome della varibile numerica che contiene la longitudine in formato decimale caption Varname il nome della variabile stringa che contiene il testo che deve comparire come titolo nel fumetto info Varname il nome della variabile stringa che contiene il testo che deve comparire nel fumetto name String il nome della serie di dati marker Hash il nome e/o il colore delle icone che rappresentano i punti
Tutti i precedenti parametri possono essere passati come Array per rappresentare più serie di dati sulla mappa. :caption, :info e :name se hanno lunghezza 1 vengono riciclati per tutte le serie.
Opzioni per mappare dei punti esterni:
Parametro Tipo Descrizione points Hash le serie di punti da rappresentare sul grafico filenames String il nome del file contenente un hash con le serie di punti da rappresentare sul grafico
Opzioni generali:
Parametro Tipo Descrizione w Fixnum la larghezza in punti della mappa h Fixnum l’altezza in punti della mappa note String il testo della nota della mappa js String una stringa o un Array di stringhe con istruzioni javascript
1 2 3 4 5 6 7 8 9 10 11 | map "Posizione interviste", :lat => :latitudine, :lng => :longitudine, :caption => :name, :info => :str1
map "Mappa con due serie dai dati", :lat => [:lat1, :lat2], :lng => [:long1, :long2],
:caption => [:cognome, :cognome], :name => ['Residenza', 'Lavoro']
map "Mappa con punti aggiuntivi",
:lat => :latitudine, :lng => :longitudine, :caption => :name,
:marker => {name: 'telephone', color: 'cadetblue'},
:points => points
map "Mappa con solo punti da file esterno", :filenames => "points.rb", :w => 500, :note => "Nota della mappa"
|
Alcuni parametri di configurazione generale impostano varie caratteristiche delle mappe:
Parametro Tipo Descrizione map_width Fixnum Larghezza mappa in pixel map_height Fixnum Altezza mappa in pixel map_search Boolean Mostra il riquadro di ricerca map_search_text String Testo riquadro di ricerca map_zoom_control Boolean Mostra i pulsanti di controllo dello zoom map_zoom_slider Boolean Mostra lo slider di controllo dello zoom map_center Array Centro geografico iniziale map_scale Boolean Mostra scala map_layers_control Boolean Mostra controllo selezione layers map_marker_type Symbol mk (Maki), :fa (Font Awesome) map_marker_size Symbol :s|:m|:l (solo per Maki) map_marker_icons_mk Array Nomi icone per le serie di punti (Maki) map_marker_icons_fa Array Nomi icone per le serie di punti (Font Awesome) map_layers Hash Layers (map tiles principali) map_overlays Hash Overlays (map tiles livelli sovrapponibili) map_active_layer Fixnum Numero layer principale preselezionato map_data_name String Nome serie dati principale map_bound_serie Fixnum Serie su cui centrare la mappa map_clustered Symbol/Fixnum Mostra i punti della serie aggregati: # (una specifica serie); :all (tutte le serie); :none (nessuna serie) map_show_position Boolean Stampa le coordinate geografiche nel fumetto del punto map_show_series_info Boolean Stampa informazioni sulle serie di punti map_point_label Array Etichetta ‘punti’
Layers e overlays¶
map_layers e map_overlays permettono di definire le map tiles (mappe di tasselli) utilizzate nella mappa. map_layers definisce le map tiles diponibili come livello principale, mentre map_overlays definisce le map tiles utilizzabili come livelli sovrapposti a quello principale.
Vedere Leaflet-providers preview per le mappe disponibili.
Markers¶
map può utilizzare per le icone dei punti Maki oppure Font Awesome.
Il parametro di configurazione map_marker_type definisce il provider utilizzato di default. Ciascuna serie di dati può comunque specificare un diverso provider atraverso il parametro :type.
Nell’istruzione map, il parametro :marker permette di specificare per ciascuna serie di punti il nome dell’icona, il colore e il provider. Se non specificato, pTabs utilizza i valori predefiniti di icone specificate nei parametri :map_marker_icons_mk e :map_marker_icons_fa.
1 2 3 | :marker => {name: 'place-of-worship'}
:marker => {name: 'dot-circle-o', color: 'darkblue', type: :fa}
|
Il nome dell’icona deve corrispondere a un nome esistente nella serie di icone del provider scelto.
Utilizzando Maki è possibile modificare la dimensione del marker con il parametro :size: :s, :m o :l.
1 | :marker => {name: 'fuel', color: 'green', type: :mk, size: 'm'}
|
I colori disponibili sono:
blue, red, purple, green, orange, darkblue, darkred, darkpurple, darkgreen, cadetblue, lightblue, lightred, pink,
lightgreen, beige, lightgray, gray, black, white
Coordinate esterne¶
In alternativa o in aggiunta alla mappatura di coordinate presente nel file di dati è possibile mappare altre serie di punti.
I dati delle serie possono essere passati al comando map con il parametro :points oppure memorizzati in un file di dati e il nome del file indicato nel parametro :filename.
In entrambi i casi i dati devono essere nel seguente formato:
1 2 3 4 5 6 7 8 9 10 11 12 | {
chiave_serie: {
name: 'Nome serie',
marker: {name: 'nome-icona', color: 'nome-colore'},
points: [
{ lat: 45.471, lng: 9.223, title: "Nome punto", info: "Info punto"},
...
]
},
altra_serie: { ... },
...
}
|
Le chiavi :name, :marker e :info sono facoltative.
Suggerimento
Per verificare la correttezza sintattica del file di coordinate, si consiglia di nominare il file con estensione .rb e di eseguirlo in SciTE con il pulsante F5.
Linee e forme¶
Attraverso il parametro :js è possibile inserire codice javascript per aggiungere cerchi, poligoni e altre forme alla mappa.
Nel parametro js è possibile utilizzare i seguenti simboli:
- $divid: l’ID del DIV HTML che contiene la mappa
- $mapid: il nome della variabile javascript che contiene la mappa
1 2 3 4 5 6 | shapes = [
"L.circle([45.464, 9.181], 1500, {color: 'green', weight: 3,}).addTo($mapid);",
"L.circle([45.464, 9.181], 500, {color: 'red', weight: 3,}).addTo($mapid);",
"L.polygon([[45.451, 9.154], [45.464, 9.181], [45.473, 9.192], [45.492, 9.185]], {color: 'blue', weight: 2, fill: false,}).addTo($mapid);"
]
map "Forme", :filenames => "points.rb", :points => points, :js => shapes, :w => 600, :h => 400
|
Per i dettagli della sintassi consultare l’help di Leaflet.