venerdì 14 settembre 2007

Da ArcGis 9.x a Google Maps: una ricetta passo-passo

Molti si domandano come sia possibile creare una mappa di Google Maps (un vero mashup!) partendo da elementi presenti in una mappa generata in ArcMap. Dopo molte ricerche ed alcuni esperimenti oggi vediamo un metodo che dà buoni risultati senza spendere un euro (eccetuando il costo non proprio trascurabile di ArcGis 9.x ...).

La ricetta per l'impaziente è presto detta:

ingredienti:
1) ArcGis 9.x
2) i propri tematismi gis in formato shapefile
3) l'ArcScript "ArcMap2GMap" realizzata da un gruppo di ricercatori dell'Università del Texas liberamente scaricabile (da qui se avete ArcGis 9.0 e da qui se avete la 9.1 o la 9.2)

Preparazione:
- Una volta scaricato l'ArcScript "ArcMap2GMap" estraete il contenuto in c:\ in modo da avere una cartella (C:\ArcMap2GMap) che contenga tutto il necessario.
Aprite il progetto di arcmap ivi contenuto (ArcMap2GMap.mxd) in una nuova sessione di ArcMap.
Avrete davanti a voi l'interfaccia di ArcMap con una nuova toolbar che si chiama, (indovinate un po?) ArcMap2GMap!
- Caricate adesso i tematismi gis di vostro interesse non importa "vestirli" questa operazione si farà successivamente in fase di conversione.
Raccomandazione: è necessario che i tematismi siano in formato shapefile e che le informazioni siano georiferite mediante un sistema di riferimento geografico non proiettato. WGS84 Geografico è perfetto. se avete dei tematismi in Gauss Boaga dovrete riprioettarli in WGS84; ma questo lo saprete fare di sicuro... (ah, no?! beh allora ci vuole un bel ripasso delle dispense di fabio.lucchesi)
- A questo punto si può far entrare in azione il nuovo strumento cliccando sul comando "ArcMap2GMap"; comparirà quindi una finestra di dialogo nella quale sarà possibile selezionare i tematismi interessati e caricarli uno per volta specificandone il colore, anche spessore e trasparenza se si stanno trattando entità lineari. Man mano che si caricheranno i tematismi, nello spazio di destra si riempirà automaticamente una lista. A fondo pagina è possibile inserie il nome dell'autore ed il titolo della mappa. Per completare questa fase sarà sufficiente fare clic su "Let's do it"!
- Lasciate "cuocere" ArcMap finchè non compare un avviso che vi permette di chiudere il programma o di visualizzare immediatamete il risultato facendo clic su "Launch Google Map".

Il "piatto" è pronto. Se aprite la cartella in C:\ArcMap2GMap vedrete che al suo interno è presente una cartella chiamata "mashupFiles" che contiene il file principale googlemap.html (visualizzabile via browser) e tutti i files accessori al suo funzionamento

Per i "palati" maggiormente raffinati e per i "cuochi" più bravi:
- Cercate di avere a disposizione uno spazio web gestibile via ftp e procuratevi la "Google Maps API key" relativa all'indirizzo web che ospiterà il mashup. Ripercorrendo la Preparazione avrete la possibilità di inserire la vostra API key nella finestra di dialogo.
- Se volete aggiungere una "guarnizione speciale" vi invito a creare nel vostro shapefile un campo che ospiti una descrizione anche sfruttando la "grammatica" html. Se lo ritenete utile potete usare anche il "Field Calculator" di ArcMap per generarlo in modo da richiamare i valori presenti nei vari campi della tabella. Nella finestra di dialogo di ArcMap2GMap vi sarà possibile specificare il campo che descrive ciascun elemento in modo tale che dentro le famose "nuvolette" di Google Map compaia la descrizione presente in detto campo.
- Se volete abbellire "il piatto" potreste usare un editor visuale di html come DreamWeaver per modificare il file googlemap.html.

Caricate la cartella mashupFiles sul vostro spazio web ed il "pranzo" è servito!
Un esempio del possibile risultato lo trovate qui.

2 commenti:

Ron ha detto...

Carissimi amici di gisblog,

dopo aver letto questo interessante articolo,
abbiamo iniziato subito a fare le prime prove
con risultati molto interessanti.

Avevamo in progetto la realizzazione di un GIS per la nostra regione (valli di Lugano),
ma viste le difficoltà che abbiamo nelle competenze ecc.
stavamo provando a realizzare qualcosa di diverso,
più semplice e veloce, usando le mappe di google.

Quello che si riesce ad ottenere con ArcMap2GMap
è una soluzione molto interessante per le nostre esigenze.

Quello che stiamo usando dai mashup generati
sono solo i files googlemap.html,
tutto il resto delle cartella per noi è superfluo,
viste anche le difficoltä ad usarlo dato
che stiamo lavorando con un sito
dinamico generato con Joomla.

Abbiamo visto che è possibile
in un file googlemap.html
integrare fino a 2 elementi, ossia:

un input name = "check_line"
un input name = "check"

questo permette di visualizzare, una polyline
e una serie di marker con due checkbox separati

qui potete eventualmente vedere il risultato
http://rvl.equoweb.com

è un sito sul quale lavoriamo come test,
dove peraltro potete vedere anche i risultati
ottenuti con componenti specifici di Joomla

Sotto al titolo Percorsi tematici
ci sono i risultati di ArcMap2GMap

Quello che ci chiedevamo e che vorremmo dunque
sia suggerire come anche trovare la soluzione,
è che sarebbe interessante avere la possibilità
di visualizzare un numero maggiore di input,

questo permetterebbe ad esempio di creare
diversi percorsi tematici, accoppiando
una polyline e un serie di marker
tutti sulla stessa mappa, navigando sui checkbox

Probabilmente si dovrebbe trattare di apportare
una modifica ai javascript contenuti in googlemap.html

Sperando possa essere un suggerimento interessante
vorremmo comunque chiedervi se siete a conoscenza
di qualche lavoro fatto in questa direzione
e saremmo felici di trovare una soluzione
o avere qualche suggerimento.

Grazie in anticipo
Ron

Anonimo ha detto...

Si esistono gia diversi mashup in questa direzione, ora si tratta di capire se servono funzionalita GIS-server o se si tratta semplicemente di una localizzazione su mappa.... contattatemi pure senza problemi ;) stefano.ferri@stesurf.com