INTRODUZIONE
L'oggetto maps permette di integrare l'utilizzo delle API Google Maps all'interno di JAMP. Per poter utilizzare le API di Google Maps bisogna soddisfare due condizioni:
1) Le API di Google Maps sono un servizio gratuito offerto da Google ma nel rispetto dei termini e condizioni di utilizzo, per maggiori dettagli visitare il link: http://code.google.com/intl/it-IT/apis/maps/terms.html
2) Generare una key, visitando il link: http://code.google.com/intl/it-IT/apis/maps/signup.html verrà chiesto di inserire l'url del vostro server web per generare una chiave esempio:
url: http://jamp.alyx.it/
key: ABQIAAAAy_C4M_ea8DhG49zPv6qLFBSTqenHUeeHk1GUjmle1S1Z4O1k_RRz0eAO9dorSe90nZwJT3bpuDxUxg
la chiave generata potrà essere inserita all'interno di ogni oggetto "map" nell'attributo key
<idtag typeobj="map" key="ABQIAAAAy_C4M_ea8DhG49zPv6qLFBSTqenHUeeHk1GUjmle1S1Z4O1k_RRz0eAO9dorSe90nZwJT3bpuDxUxg" ... />
oppure una sola volta utilizzando l'apposita costante
INTEGRAZIONE API GOOGLE MAPS IN JAMP
L'integrazione della API di Google Maps non deve essere intesa come la trasposizione dei tantissimi metodi ed eventi in esse presenti all'interno del framework ciò oltre ad essere complicato da realizzare non permetterebbe di sfruttare le innumerevoli documentazioni ed esempi presenti nel sito ufficiale http://code.google.com/intl/en/apis/maps/documentation/ oltre alle migliaia di esempi che si possono trovare sul WEB.
Partendo da questi presupposti si è deciso di individuare ed implementare solo le funzionalità base:
- Disegnare una mappa
- Disegnare dei marker
- Creare un percorso
Questo non deve essere inteso come un limite infatti l'utente potrà poi in base alle su esigenze interfacciarsi direttamente alle API e richiamare i metodi ed eventi.
LATITUDINE E LONGITUDINE
Per poter effettuare qualsiasi tipo di operazione con Google Maps, come ad esempio centrare una mappa, evidenziare un punto(marker), tracciare un percorso è necessario poter individuare delle posizioni, in una mappa ogni punto è espresso tramite le sue coordinate intese come la coppia di valori latitudine e longitudine. Per specificare le coordinate di un punto abbiamo sostanzialmente due possibilità, la prima consiste nel conoscere o ricavarsi la latitudine e longitudine del punto stesso, in questa applicazione ad esempio cliccando sulla mappa ne verrano restituite le coordinate, la seconda invece sfrutta un ulteriore servizio offerto gratuitamente da Google chiamato geocode, in breve il servizio di Geocode è un sistema in grado di essere interrogato e "risolvere" l'indirizzo fornito nella richiesta restituendo le coordinate dello punto stesso. Le considerazioni da fare sono ovvie, il primo metodo è diretto non si appoggia ad altri servizi e quindi più veloce ed affidabile perché il suo funzionamento non dipende dalla risposta all'interrogazione la quale potrebbe non avvenire o restituire un errore, al contrario però il secondo metodo può risultare molto più comodo da utilizzare all'interno di un'applicazione. Lasciamo libero lo sviluppatore di decidere quale metodo utilizzare aggiungiamo solamente che JAMP implementa entrambi i metodi il primo tramite gli attributi lng e lat, il secondo tramite l'attributo address
›› REFERENCE XML - MAP
Oggetto: MAP
Vedi Maps
<nome typeobj="map" attribute="valore".../>
Attributi:
debug
Attiva il debug dell'oggetto.
Valori consentiti: true,false
Valori di default: false
onclick
Codice associato all'evento onclick.
ondblclick
Codice associato all'evento ondblclick.
onmousedown
Codice associato all'evento onmousedown.
onmouseup
Codice associato all'evento onmouseup.
onmouseover
Codice associato all'evento onmouseover.
onmousemove
Codice associato all'evento onmousemove.
onmouseout
Codice associato all'evento onmouseout.
onkeypress
Codice associato all'evento onkeypress.
onkeydown
Codice associato all'evento onkeydown.
onkeyup
Codice associato all'evento onkeyup.
class
Nome della classe di stile utilizzata dall'oggetto.
style
Proprietà di stile.
lang
Lingua da utilizzare per le infomazioni testuali
Valori di default: en
dir
Direzione del testo:
- LTR da sinistra a destra(default).
- RTL da destra a sinistra.
template
Nome del template utilizzato dall'oggetto, se non specificato viene utilizzato quello di sistema.
title
Informazioni aggiuntive visualizzate al passaggio del mouse sull'oggetto istanziato.
id
Nome univoco dell'oggetto.
Valori di default: map
key
Chiave Google Maps
Valori di default: ABQIAAAAdwPprncW9Z18oIeIrU1zmRTkpkq9lsP2kjyX7L971DBQfPezsxTjE2cJG4SEN1Hxw7Qx8mhxjrfx7g
ver
Versione API Google Maps
Valori di default: 3
address
Indirizzo(da usare in alternativa alle coordinate(lng e lat)
lat
latitudine del centro mappa
lng
longitudine del centro mappa
zoom
livello di zoom
Valori di default: 13
traffic
true visualizza il traffico
display
ID dell'oggetto che visualizza/nasconde la mappa.
Es. "display"="tabs1"
L'init della mappa avverà solamente alla chiamata della funzione tabs1Display().
Per un corretto funzionamento della mappa l'inizializzazione deve avvenire quando la mappa non è nascosta dal css. Non è necessario impostare questo valore poichè viene ereditato automaticamente in base all'oggetto in cui si trova la mappa.
gsmallmapcontrol
Visualizza i tasti + e - per lo zoom
gmaptypecontrol
Visualizza tasti per visualizzare mappa in modalita Mappa, Satellite, Terreno
glargemapcontrol
Visualizza tasti + e - per lo zoom con barra progressiva
route
id del frame sul quale visualizzare il percorso
dsobj
ID dell'oggetto datasource associato.
dsitem
Nome del campo datasource associato.
java
Nome del/dei file javascript usati dall'oggetto.
›› Elenco dei metodi Javascript intercettabili dall'utente:
Sintassi JS: SYSTEMEVENT.addBeforeCustomFunction("JMAP","toggleTraffic", "User function"); Function parameters: function()
Sintassi JS: SYSTEMEVENT.addBeforeCustomFunction("JMAP","createGraph:", "User function"); Function parameters:
Sintassi JS: SYSTEMEVENT.addBeforeCustomFunction("JMAP","drawMarker:", "User function"); Function parameters:
Sintassi JS: SYSTEMEVENT.addBeforeCustomFunction("JMAP","createMarkers:", "User function"); Function parameters:
Sintassi JS: SYSTEMEVENT.addBeforeCustomFunction("JMAP","createDirection:", "User function"); Function parameters:
Sintassi JS: SYSTEMEVENT.addBeforeCustomFunction("JMAP","getDsValue", "User function"); Function parameters: function(id)
Sintassi JS: SYSTEMEVENT.addBeforeCustomFunction("JMAP","displayObj", "User function"); Function parameters: function(id)
Sintassi JS: SYSTEMEVENT.addBeforeCustomFunction("JMAP","refreshObj", "User function"); Function parameters: function(id)
Sintassi JS: SYSTEMEVENT.addAfterCustomFunction("JMAP","toggleTraffic", "User function"); Function parameters: function()
Sintassi JS: SYSTEMEVENT.addAfterCustomFunction("JMAP","createGraph:", "User function"); Function parameters:
Sintassi JS: SYSTEMEVENT.addAfterCustomFunction("JMAP","drawMarker:", "User function"); Function parameters:
Sintassi JS: SYSTEMEVENT.addAfterCustomFunction("JMAP","createMarkers:", "User function"); Function parameters:
Sintassi JS: SYSTEMEVENT.addAfterCustomFunction("JMAP","createDirection:", "User function"); Function parameters:
Sintassi JS: SYSTEMEVENT.addAfterCustomFunction("JMAP","getDsValue", "User function"); Function parameters: function(id)
Sintassi JS: SYSTEMEVENT.addAfterCustomFunction("JMAP","displayObj", "User function"); Function parameters: function(id)
Sintassi JS: SYSTEMEVENT.addAfterCustomFunction("JMAP","refreshObj", "User function"); Function parameters: function(id)
›› Note fornite dagli utenti