INTRODUZIONE
L'oggetto maps permette di integrare l'utilizzo delle API Google Maps versione 3 all'interno di JAMP.
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
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 inserire il prorio codice.
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 una posizione geografica ossia conoscere le sue coordinate geografiche 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 la latitudine e longitudine del punto stesso, questa applicazione restituisce le coordinate del punto della mappa su cui si clicca, la seconda invece sfrutta un ulteriore servizio offerto gratuitamente da Google o da terze parti chiamato geocode, in breve il servizio di Geocode consiste nella traduzione in coordinate geografiche di un dato indirizzo.
Volendo fare delle considerazioni su quale tecnica scegliere possiamo dire che il primo metodo è sicuramente più affidabile visto che non dipende dalla qualità e velocità del servizio di geocode e quindi non risente di eventuali problemi derivanti dal servizio di geocode, tempi di latenza errori nella risoluzione dell'indirizzo, di contro c'è da dire però che il secondo metodo può risultare molto più comodo da utilizzare all'interno di un'applicazione nella quale magari le coordinate non possono essere calcolate a priori perché magari fornite dall'utente.
Lasciamo libero lo sviluppatore di decidere quale metodo ritienga più idoneo utilizzare e ci limitiamo soltanto ad aggiungere 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: it
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
libraries
Consente di specificare la libreria da utilizzare.
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.
marker
Aggiunge un marker in corrispondenza del centro della mappa
Valori consentiti: true,false.
html
Codice html da associare al marker centro mappa.
icon
Link icona da associare al marker centro mappa.
draggable
Abilita/Disabilita il trascinamento del marker centro mappa
Valori consentiti: true,false.
dsmarker
Aggiunge i marker ogni riga restituita dal datasource
Valori consentiti: true,false
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","createMap:", "User function"); Function parameters: zoom)
Sintassi JS: SYSTEMEVENT.addBeforeCustomFunction("JMAP","createGraph:", "User function"); Function parameters:
Sintassi JS: SYSTEMEVENT.addBeforeCustomFunction("JMAP","setMarker:", "User function"); Function parameters: icon,draggable,html)
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","clearOverlays", "User function"); Function parameters: function()
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","createMap:", "User function"); Function parameters: zoom)
Sintassi JS: SYSTEMEVENT.addAfterCustomFunction("JMAP","createGraph:", "User function"); Function parameters:
Sintassi JS: SYSTEMEVENT.addAfterCustomFunction("JMAP","setMarker:", "User function"); Function parameters: icon,draggable,html)
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","clearOverlays", "User function"); Function parameters: function()
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