Documentazione Grules, versione 2.1


Prima applicazione: un esempio minimo

Nell'esempio abbiamo creato una mappa, un e posizionato 4 punti d'interesse sulla mappa in corrispondenza di 4 citta'. Un semplice tooltip viene visualizzato passando il mouse sopra un'oggetto, e una breve descrizione cliccando sul punto.

Il codice html/javascript necessario per inizializzare la pagina (una volta scaricata la libreria grules) è:


<!-- This is needed only if we are using font icons (see style documentation) -->
<link  href="http://mappe.rete.toscana.it/webstat/font_mappe/style.css"
       rel="stylesheet" type="text/css"/>

<div id="map" style="width:600px; height:400px;">
</div>

 <script src="http://mappe.rete.toscana.it/webstat/js/jquery.js"></script>
 <script src="http://mappe.rete.toscana.it/webstat/js/jquery-ui.js"></script>
 <script src="http://mappe.rete.toscana.it/webstat/openlayers/OpenLayers.js"></script>
 <script src="http://mappe.rete.toscana.it/webstat/js/grules2.1.js"></script> 

<script>

$(function() {

var citta = {
  id: "citta", 
  geometry: [
      { id: '1', e:1617338, n:4845112, label: 'Pisa',    text: "Città marinara"          },
      { id: '2', e:1688226, n:4856128, label: 'Firenze', text: "Patria di Dante"         },
      { id: '3', e:1749425, n:4801122, label: 'Arezzo',  text: "Antica capitale etrusca" },
      { id: '4', e:1696928, n:4804151, label: 'Siena',   text: "Antica città toscana"    }
  ],
  style: { externalGraphic: 'needles/drop/maraschino.png', 
           graphicWidth: 12, graphicHeight: 12, cursor: 'pointer'  },
  info: "<h3><%=label%></h3><p><%=text%></p>" 
};

addLayer(citta); 

});

</script>

Il div con id map conterrà la mappa, e tramite lo stile ne possiamo definire le dimensioni e il posizionamento.

È poi necessario caricare le librerie javascript: JQuery, OpenLayers e Grules

Infine dobbiamo specificare il contenuto della mappa: a questo scopo creiamo un'oggetto javascript (citta), e tramite la funzione addLayer aggiungiamo i punti definiti alla mappa.

Da notare come il codice sia contenuto all'interno di $(function() {...});, una funzione di JQuery che verrà eseguita non appena la pagina sia stata caricata

Definizione di un layer

Gli oggetti puntuali rappresentati sulla mappa sono organizzati in layers. Un layer contiene tutte le informazioni necessarie a rappresentare l'oggetto sulla mappa:

I principali attributi di un layer sono:

id

In questo caso citta è l'identificativo univoco del layer, sarà utile in seguito per accedere al layer

geometry

Contiene la posizione dei punti e le informazioni alfanumeriche, puo' essere fornita in formato XML, GeoJSON, o direttamente come oggetto javascript, come nell'esempio.

Il campo geometry è un'array di oggetti, in cui alcune chiavi giocano un ruolo particolare (e sono tutte opzionali, a parte id, e, n):

id: identificativo univoco del punto (del museo in questo caso)

label: etichetta attraverso la quale identificare il museo ('Musei Vaticani')

icon: useremo un'icona, diversa per ciascun museo per rappresentarli sulla mappa

width, height: dimensioni dell'icona

e, n coordinate Gauss-Boaga del punto

Altri campi (nell'esempio text) possono essere aggiunti.

style

Definisce l'aspetto degli oggetti geografici: icone, colori, dimensioni etc. l'elenco completo degli stili è disponibile nella documentazione di OpenLayers.

info

Specifica le informazioni relative ad un oggetto, generalmente un piccolo template in formato EJS, un semplice linguaggio di scripting in Javascript.

L'elenco completo degli attributi di un layer è disponibile alla relativa pagina di documentazione