Mappe

L’istruzione map permette di inserire mappe geografiche nell’output HTML, PDF e pTabsWeb.

_images/map4.png

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.

_images/map_mtbmap.png _images/map_sat.png

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.

_images/map_shapes.png

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.