Configurazione dell'interfaccia
Oltre a modificare l'aspetto dell'interfaccia html come descritto nella documentazione relative
all' interfaccia HTML, è possibile modificare lo stato iniziale ed
il comportamento dell'interfaccia tramite tre meccanismi: url e variabile globale Grules
, javascript.
Aggiungendo all'url dei parametri, per esempio index,html?region=4846888:1687012:3
la mappa si centrerà sulle coordinate e livello di zoom desiderati.
La variabile globale Grules permette similmente di centrare la mappa usando una riga di javascript in fase di inizializzazione:
<script type="text/javascript"> Grules.region = [1687012,47687012,3]; </script>
Infine lo stesso risultato si può ottenere invocando la funzione opportuna:
<script type="text/javascript"> Grules.map.setCenter(new OpenLayers.LonLat(1687012, 4846888, 0), 3); </script>
Quale meccanismo sia preferibile usare dipende dall'uso: se intendiamo inserire una mappa entro una pagina, per esempio per indicare la posizione di un ospedale, la seconda soluzione, usare la variabile globale è da preferirsi;
Volendo aprire una finestra con la mappa centrata e degli oggetti visualizzati, la soluzione tramite url è la più semplice.
Se invece la mappa viene inserita in una pagina e vogliamo tramite link visualizzare la posizione di vari oggetti, il Javascript rimane l'unica possibilità
Per utilizzare le chiamate Javascript è necessario attendere che la mappa venga creata. La soluzione più semplice è utilizzare jQuery:
$(function() { //inserire qui le chiamate a javascript });
Parametri
region
Questo parametro è composto da tre parti separate da ':': north:east:zoom
// http://.../index.html?region=1687012:47687012:3 //oppure Grules.region = [1687012,47687012,3]; //oppure Grules.map.zoomToExtent(new OpenLayers.Bounds(w, s, e, n), true);
Le coordinate devono essere nel sistema GausBoaga
scale
Equivalente a settare zoom
, ma le unita' sono il denominatore della scala (approx)
Grules.scale = 10000; //setta la scala 1:10000.
e, n, zoom
Grules.e = 1687012; Grules.n = 47687012; Grules.zoom = 3; //oppure Grules.map.setCenter(new OpenLayers.LonLat(1687012, 4846888, 0), 3);
location
Grules riconosce province e comuni in toscana per nome o codice istat (la lista si trova in js/locations.js).
È possibile posizionare la mappa su una provincia usando la sigla:
index.html?location=FI
Per posizionare la mappa su un comune si usa il nome del comune:
index.html?location=FIRENZE
Grules.location = 'FIRENZE'; //oppure var b = getLocus(Grules.location); if(b) Grules.map.zoomToExtent(b, true);
address
split : provincia, comune, indirizzoGrules.address = "FI:FIRENZE:Via Roma 22"
numZoomLevels
Specifica il numero di livelli di zoom:
Grules.numZoomLevels = 4;
minZoom, maxZoom, minScale, maxScale, minResolution, maxResolution
Insime a numZoomLevels definiscono il numero di zoom diponibili all'utente, ha senso settare uno solamente tra scale, resolution and zoom.
Grules.numZoomLevels = 4;
nobasemaps
Permette di rimuovere la cartografia di base per esempio quando si mostra un layer vettoriale.
Grules.nobasemaps = true;
mapsets
Permette di creare dei mapsets aggiuntivi (vedi documentazione area).
mapset
Permette di selezionare una mappa di partenza, tramite Url:
index.html?mapset=limiti
Tramite javascript:
Grules.mapset = 'limiti'; //oppure Grules.allMapsets['limiti'].show();
mark
Aggiunge una freccetta alla mappa nel centro della mappa (che è va configurato usando i parametri region):
http://...index.html?mark=true
layer
Seleziona dinamicamente le applicazioni da mostrare nell'interfaccia:
http:// index.html?layer=biblio,musei
In questo caso le applicazioni devono essere definite da due files javascript di configurazioni: biblio/biblio.js
e musei/musei.js
area
Nella directory areas è possibile definire un file in formato JSON che descrive un'area:
http:// index.html?area=sanita
legendon
Attiva il layer corrispondente: http://index.html?area=cultura&legendon=biblio
Grules.layers['biblio'].setVisibility(true);
legendopen
Nel caso un layer abbia sottolayers e sia stato definito con l'attributo group espande il controllo corrispondente
find
Permette di centrare la mappa alla partenza su di uno specifico oggetto. La sintassi e':
Grules.find = ['layername', 'field', 'value'];
e viene selezionato l'oggetto i cui attributi soddisfano field=value
(per esempio id=23
).
Field dovrà essere un campo univoco.
Come sempre la funzione e' invocabile anche da URL usando il parametro find
:
.... &find=layername|field|value
info_draggable
Allow user to drag info around if true, can be specified in area and layers also.
miniControls
If true the zoom bar is removed, and replaced with just zoom in/out buttons