Documentazione Grules, versione 2.1


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, indirizzo
  Grules.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