Università degli Studi di Trieste Facoltà di Ingegneria Tesi di Laurea Triennale in Ingegneria Informatica PROGETTO E SVILUPPO DI UN APPLICATIVO BASATO SU GOOGLE EARTH PER LA VISUALIZZAZIONE DI DATI DI EMISSIONI INQUINANTI Relatore: Laureando: Ill.mo Prof. Maurizio FERMEGLIA Raffaele BERNARDI Anno accademico 2009 – 2010
47
Embed
Progetto e sviluppo di un applicativo basato su Google Earth per la visualizzazione di dati di emissioni inquinanti
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Università degli Studi di Trieste
Facoltà di Ingegneria
Tesi di Laurea Triennale in Ingegneria Informatica
PROGETTO E SVILUPPO DI UN APPLICATIVO BASATO SU GOOGLE EARTH PER LA VISUALIZZAZIONE DI DATI DI EMISSIONI INQUINANTI
In concomitanza al rilascio del plugin, Google mise a disposizione le API (Application
Programming Interface) Javascript necessarie agli sviluppatori che avessero voluto creare
applicazioni web proprie sfruttando le potenzialità di Google Earth. Queste andarono ad
affiancarsi alle API COM, fino a quel momento l’unico mezzo per chi avesse voluto
sviluppare codice su questo software, esistenti ancor prima che Keyhole divenisse Google
Earth. Sebbene quest’ultime fossero state mantenute anche dopo tale passaggio, non
godettero mai dello stesso supporto e documentazione che invece vantano le prime. La
difficoltà nel reperire informazioni e lo scarso supporto sono stati confermati dalla stessa
azienda statunitense, la quale nell’agosto 2010 ha annunciato che la versione 5.2 sarebbe
stata l’ultima a supportare le API COM:
“From the earliest days of Google Earth, (and even back when it was still called Keyhole,)
developers have wanted control over the globe to create their own 3D Earth applications.
In response to this need, the Keyhole team added a COM API to the Keyhole app, to allow
further customization of users’ Google Earth experience. When Keyhole became Google
Earth in 2005, this API was carried over. Though we never provided much support,
developers discovered the COM bindings and a few intrepid developers sorted through the
vagaries of COM programming. Eventually we had a small but committed development
community demanding documentation, which we released in 2007. We saw some
interesting uses for the COM API, particularly by Enterprise users and broadcasters.
Mostly, though, people wanted to put Earth in their web applications. In 2008, we released
the Google Earth API and browser plug-in. This robust JavaScript API is more powerful
than the COM API, and can be used on a variety of platforms to deliver compelling 3D
applications over the web based on the Google Earth technology. At the same time, we
stopped development on the COM API and began encouraging developers to migrate to
the Earth API instead. Today, more and more apps are being written in JavaScript, and
COM itself is no longer a widely used technology, so the time has come to retire the
Google Earth COM API. Today we’re announcing that the Google Earth 5.2 client will be
the last version that supports the COM API. […] We believe that the JavaScript API
provides the best mechanism for reaching the most developers. […] ” (Mano Marks, Geo
APIs Team).
Ai fini dell’applicativo quindi si è scelto di operare con le Javascript API. La
documentazione online è affiancata da numerosi esempi più o meno complessi, divisi per
2. Analisi
8
categorie, e forum di supporto. Risalta l’assenza di indicazioni per lo sviluppatore che si
ponesse l’obiettivo di costruire applicazioni stand-alone anziché web.
2.4 Il progetto PRTR
Il PRTR (Pollutant Release and Transfer Register) è un database contenente dati di
emissioni inquinanti. L’organizzazione responsabile del progetto è l’ICS (International
Centre for Science and High Technology) che agisce nell’ambito dell’UNIDO (United
Nations Industrial Development Organization). L’obiettivo dell’ente è sostenere le
comunità scientifiche nei Paesi in via di sviluppo e nei Paesi ad economia di transizione
attraverso attività di ricerca e formazione avanzata per la crescita industriale sostenibile. Le
competenze sviluppate al suo interno forniscono una serie di strumenti che trovano
applicazione in molteplici settori, quali: chimica pura ed applicata, scienze della terra
dell’ambiente e del mare, alta tecnologia e nuovi materiali.
Uno dei principali progetti dell’area ambientale dell’ICS/UNIDO è la distribuzione delle
conoscenze sui sistemi per il supporto decisionale. Lo scopo è la creazione di un centro di
raccolta di conoscenze atto a formare personale competente negli ambiti della simulazione
dei processi e nei sistemi di informazione geografici. In tal modo si sviluppa un
programma che possa favorire il monitoraggio dei sistemi, l’analisi e l’accertamento del
rischio, l’applicazione effettiva della tecnologia in risposta a problemi ambientali causati
da attività industriali. Rientra in questo ambito il progetto riguardante lo sviluppo di un
sistema pubblico per la raccolta e la divulgazione dei dati sugli inquinanti, il PRTR.
Progettato come un database ambientale, il Pollutant Release and Transfer Register
rappresenta un inventario di emissioni potenzialmente dannose riguardanti terra,
sottosuolo, acqua e aria, inoltre tiene conto del trasporto degli inquinanti in luoghi di
trattamento e discarica. Il PRTR si inserisce molto bene nella struttura organizzativa per lo
sviluppo industriale sostenibile, la conoscenza delle quantità delle sostanze emesse
consente di stimare l’equilibrio tra il materiale utilizzato per il processo e l’energia
impiegata per lo stesso, ottimo indicatore della sostenibilità di un processo industriale.
Inoltre i report registrando l’evoluzione delle emissioni nel tempo possono incoraggiare
l’introduzione di tecnologie più pulite al fine di ridurre il livello di inquinamento
ambientale.
2. Analisi
9
I dati presenti nel Pollutant Release and Transfer Register presentano queste caratteristiche
principali:
• Riportati per ogni prodotto chimico;
• Riportati per ogni installazione industriale;
• Riportati per ogni emissione e trasferimento;
• Riportati per ogni elemento dell’ambiente (aria, acqua, terra);
• Periodici;
• Costantemente strutturati;
• Presenti su un database;
• Divulgati e costantemente disponibili al pubblico;
• Permettono il mantenimento dei segreti industriali.
Il progetto diffusosi su scala europea con il nome E-PRTR (European Pollutant Release
and Transfer Register) si identifica nel nostro Paese nell’INES (Inventario Nazionale delle
Emissioni e loro Sorgenti).
2.5 Il database PRTR
Dal punto di vista tecnico, il DBMS utilizzato per il database PRTR contenente le
informazioni relative alle emissioni inquinanti è SQL Server 2005. Da precisare che il
laureando non ha partecipato alla stesura del relativo codice né a parte di esso, per quanto
riguarda il database ci si è soffermati sullo studio delle stored procedure, peraltro già
utilizzate dall’applicazione web esistente.
In particolare le seguenti:
• Statistics_GetByRegion: restituisce le emissioni chimiche in una determinata zona
circolare del globo definita dalle coordinate geografiche del centro, dal raggio e dal
periodo d’interesse;
• Statistics_GetByFacilityChemical: restituisce le emissioni di un determinato
prodotto chimico di un determinato complesso in un determinato periodo;
• Statistics_GetByPeriod: analoga alla precedente, ma è possibile avere i dati relativi
a tutti i complessi o a tutti i periodi inserendo NULL nei rispettivi parametri della
procedura.
2. Analisi
10
2.5.1 Legge dei coseni sferici
Interessante inoltre la funzione GetDistance, utilizzata dalla prima delle procedure citate,
che torna la distanza d fra due punti sulla superficie terrestre definiti dalle rispettive
coordinate geografiche latitudine e longitudine mediante la legge dei coseni sferici3.
∆ = ( + ∆ ) = ∆
con
: latitudine del punto 1
: latitudine del punto 2 ∆ : differenza delle longitudini ∆ : angolo centrale (il cui vertice è il centro della sfera e i cui lati intersecano la superficie
nei punti 1 e 2)
: raggio della sfera
3 Per ulteriori informazioni: (1) http://en.wikipedia.org/wiki/Great-circle_distance (2) http://en.wikipedia.org/wiki/Spherical_law_of_cosines
3. Progettazione
11
3. Progettazione
In questo capitolo si procede alla progettazione dell’applicativo mediante gli strumenti
forniti dal linguaggio UML. Creato con l’intento di unificare in un unico standard le
metodologie per il disegno nell’ambito della progettazione di sistemi software, l’UML
(Unified Modeling Language) stabilisce un insieme di notazioni e simboli, una collezione
di diagrammi composti da elementi grafici e testuali che consentono di descrivere il
sistema a più livelli d’astrazione.
3.1 Use case diagram
Lo Use case diagram è lo strumento utilizzato per la descrizione delle funzionalità offerte
dal software dal punto di vista degli attori che interagiscono con il sistema stesso.
Figura 3 - Use case diagram
Nel caso dell’applicativo in questione, si vuole che l’utente possa esplorare il globo alla
ricerca del punto d’interesse. Sono permesse diverse modalità di navigazione e ad egli
spetta la scelta di visualizzare o meno una serie di strumenti di supporto e di informazioni
aggiuntive. Una volta determinato il punto, procede alla selezione del periodo e del raggio
3. Progettazione
12
della circonferenza ideale di cui esso è il centro. Infine visualizza i dati relativi alle
emissioni inquinanti inerenti alla regione geografica prescelta.
3.2 Activity diagram
L’Activity diagram descrive i processi alla base di una data funzionalità del software.
L’algoritmo pone in primo piano le singole attività evidenziando i sistemi responsabili che
intervengono nel corso dell’elaborazione.
Figura 4 - Activity diagram riferito ai sistemi PRTR Google Earth Interface e Google Earth Server
Allo scopo di rendere il diagramma più comprensibile si è scelto di scinderlo nelle due
parti che caratterizzano l’algoritmo dell’applicativo. La prima di queste riguarda
l’interazione con il plugin di Google Earth (Figura 4), l’altra la connessione con il
database PRTR (Figura 5).
Nel dettaglio, la prima parte comprende le attività:
i. Ricerca per indirizzo/coordinate: l’utente inserisce nell’apposito campo l’indirizzo
o, in alternativa, la coppia di coordinate geografiche della locazione desiderata;
3. Progettazione
13
ii. Verifica che indirizzo/coordinate e altezza della camera view4 siano ben formati:
controllo sui dati immessi dall’utente. Nota: nel caso l’utente scelga di raggiungere
il punto d’interesse mediante navigazione con il mouse, l’activity diagram non
presenta tale attività;
iii. Rilocazione della camera view: vengono visualizzate le fotografie aeree o le
immagini satellitari, a seconda del livello dello zoom, della località scelta
dall’utente;
iv. Scelta del punto d'interesse: l’utente seleziona sulla mappa il punto d’interesse.
Figura 5 - Activity diagram riferito ai sistemi PRTR Google Earth Interface e Prtr database
4 Camera view : punto di vista dell’osservatore ideale.
3. Progettazione
14
La figura soprastante raffigura l’insieme delle attività riguardanti l’interazione con il
database PRTR, unita al primo diagramma rappresenta l’algoritmo completo alla base
dell’applicativo.
Tale parte si compone delle attività:
i. Apertura form emissioni inquinanti: una volta scelto il punto, si apre il form
relativo alle emissioni inquinanti;
ii. Query: lista i periodi: per aiutare l’utente nella scelta si esegue una query sul
database per visualizzare l’elenco dei periodi disponibili;
iii. Inserimento del raggio e selezione del periodo: egli procede all’inserimento del
raggio ed alla scelta del periodo tra quelli presenti;
iv. Query: estrai prodotti chimici relativi a periodo e regione scelti: query per
estrarre dal database i prodotti chimici relativi alla regione ed al periodo
selezionati;
v. Scelta del prodotto chimico: l’utente seleziona tra i risultati della query
precedente il prodotto chimico di cui desidera avere informazioni aggiuntive;
vi. Query: estrai lo storico del prodotto chimico scelto: in riferimento all’elemento
chimico appena selezionato, tale query estrae i dati in relazione a tutti i periodi
presenti nel database;
vii. Query: estrai lo storico dei relativi report: query per estrarre dal database
l’elenco dei report, coppie impianto – periodo, dato il prodotto chimico;
viii. Scelta del report (coppia impianto - periodo): l’utente sceglie tra i risultati della
query precedente il report d’interesse;
ix. Query: estrai i dati relativi a periodo, impianto e prodotto chimico scelti: dati il
prodotto chimico ed il report, la query estrae dal database le informazioni
riguardanti l’impianto, il report e ed il prodotto chimico dichiarato in esso.
3.3 Class diagram
Utilizzando le strutture tipiche della programmazione ad oggetti, classi metodi ed attributi,
il Class diagram ritrae il sistema sotto l’aspetto delle entità che ne fanno parte.
3. Progettazione
15
Figura 6 - Class diagram
Al fine di non appesantire eccessivamente il diagramma, per ognuna delle classi sono stati
omessi gli attributi, per la cui lettura si rimanda al codice sorgente, ed i metodi, che si
analizzano qui di seguito.
Il progetto si compone di 5 classi:
• Program: entry point dell’applicativo.
• MainForm: form principale dell’applicazione, in esso l’utente può esplorare la
mappa grazie al plugin di Google Earth integrato, scegliere se visualizzare o meno
strumenti d’ausilio alla navigazione e informazioni aggiuntive in merito alla
località inquadrata dalla camera view, e infine selezionare il punto. Sono presenti i
controlli necessari a navigare sino al punto d’interesse tramite il suo indirizzo e
strutture analoghe per farlo tramite coordinate geografiche. Dal form principale si
può accedere agli altri.
• InfoForm: semplice form per la visualizzazione della versione di Google Earth
Plugin installata sulla macchina e del programma.
• PointForm: classe del form relativo alle emissioni, da qui l’utente una volta
selezionato il punto procede alla scelta del periodo e del raggio della regione
circolare d’interesse. Quindi visualizza i risultati delle query mediante tabelle e
grafici.
• DecimalToSexagesimal: converte le coordinate geografiche dalla forma decimale
alla notazione sessagesimale e fornisce i metodi per la lettura dei nuovi valori. La
conversione è necessaria dal momento che le API di Google Earth forniscono
metodi i cui parametri e valori di ritorno sono decimali mentre sul database PRTR
le coordinate dei punti sono memorizzate in forma sessagesimale. Quest’ultimo
3. Progettazione
16
formato è stato scelto per quanto riguarda la visualizzazione delle coordinate
geografiche sull’interfaccia dell’applicativo, per favorire una lettura ed un
Sposta il cursore nel controllo successivo alla pressione del tasto Invio.
La classe DecimalToSexagesimal presenta i metodi:
• getLatDeg() : int
Restituisce il valore dei gradi di latitudine.
• getLatMin() : int
Restituisce il valore dei minuti di latitudine.
• getLatSec() : int
Restituisce il valore dei secondi di latitudine.
• getLngDeg() : int
Restituisce il valore dei gradi di longitudine.
• getLngMin() : int
Restituisce il valore dei minuti di longitudine.
• getLngSec() : int
Restituisce il valore dei secondi di longitudine.
Infine, per quanto riguarda il form principale, questo contiene una pagina html con uno
script per il caricamento e la gestione di Google Earth Plugin.
Sono presenti le funzioni:
• init()
Crea un’istanza di Google Earth Plugin.
3. Progettazione
20
• success(instance)
L’istanza di Google Earth Plugin è stata creata correttamente, inizializza il plugin.
• failure(errorCode)
L’istanza di Google Earth Plugin non è stata creata, restisuisce una stringa che
descrive l’errore.
• goToAddress(address, altitude)
Ricerca la locazione desiderata per indirizzo.
• goToCoordinates(latitude, longitude, altitude)
Ricerca la locazione desiderata per coordinate.
• geEventListener(kmlEvent)
Restituisce le coordinate del cursore sulla mappa, funzione legata all’evento
mousemove.
• timerStreamingPercent()
Restituisce la percentuale di caricamento dell’immagine attualmente inquadrata
dalla camera view.
• geEventPoint (kmlEvent)
Restituisce le coordinate del cursore sulla mappa, funzione legata all’evento
mouseup.
4. Interfaccia
21
4. Interfaccia
Nel presente capitolo si descrive l’interfaccia dell’applicativo, partendo dall’analisi dei
form che lo compongono, quindi dei rispettivi singoli componenti ed infine nel suo
complesso, mediante un esempio d’utilizzo.
4.1 Form principale
Il form principale contiene gli strumenti per consentire all’utente di selezionare il punto di
suo interesse.
Figura 7 - Form principale dell'applicativo
4. Interfaccia
22
La struttura prevede:
• Barra dei menu
• Barra di stato
• Dialog box per la ricerca tramite indirizzo
• Dialog box per la ricerca tramite coordinate geografiche
• Google Earth Plugin integrato
4.1.1 Barra dei menu
La barra dei menu è divisa in tre categorie File, View, ?. La prima rappresenta le funzioni
necessarie al caricamento ed alla chiusura dell’applicazione; la seconda fornisce un elenco
di strumenti d’ausilio alla navigazione; la terza riguarda le informazioni sull’applicativo.
• File
o New: riavvia l’applicazione ricaricando il plugin ed i valori di default;
o Exit: esce dall’applicazione;
• View
o Navigation Control: visualizza/nasconde il controllo mediante il quale è
possibile variare i parametri di zoom, tilt5 e azimut6;
o Status Bar: visualizza/nasconde il controllo che fornisce dati relativi alle
coordinate geografiche e all’altitudine del punto in corrispondenza del
puntatore sulla mappa e all’altezza della camera view;
o Grid: visualizza/nasconde una griglia rappresentante meridiani e paralleli la
cui definizione varia a seconda dello zoom;
o Roads: visualizza/nasconde il layer relativo alla rete stradale, maggiore è lo
zoom e migliore è il livello di dettaglio;
o Borders: visualizza/nasconde il layer relativo ai confini internazionali;
o Terrain: visualizza il territorio in 2D/3D;
• ?
o Info: apre il form contenente informazioni sulla versione dell’applicativo e
di Google Earth Plugin. 5 Tilt : distanza angolare compresa tra la verticale di un punto e la direzione della camera view. 6 Azimut : distanza angolare compresa tra la direzione del Nord e la direzione in cui cade la perpendicolare di un punto all’orizzonte, calcolata muovendosi in senso orario (cit. Wikipedia). Nello specifico, la distanza angolare tra la direzione del Nord e la direzione della camera view.
4. Interfaccia
23
Figura 8 - Barra dei menu
4.1.2 Barra di stato
La barra di stato mostra la latitudine, la longitudine e l’altitudine del punto sulla mappa in
corrispondenza del puntatore del mouse.
Inoltre contiene una barra di caricamento visibile in fase di download delle immagini.
Figura 9 - Barra di stato
4.1.3 Dialog box per la ricerca tramite indirizzo
Una delle possibilità che l’utente può sfruttare per la localizzazione di un punto è la ricerca
per indirizzo. Sono presenti controlli per prevedere input errati nel textbox relativo
all’altezza da terra della camera view, ovverosia maggiori di 10.000 km e negativi. Per
semplificare e velocizzare la ricerca, è possibile passare da un controllo al successivo
mediante la pressione del tasto Invio.
Figura 10 - Ricerca tramite indirizzo
4. Interfaccia
24
4.1.4 Dialog box per la ricerca tramite coordinate geografiche
In alternativa al primo metodo, l’utente può rilocare la camera view mediante l’inserimento
delle coordinate del punto d’interesse. Anche in questo caso sono presenti controlli che
verificano la validità dei valori inseriti dall’utente. Come nel caso precedente, l’altezza da
terra della camera view deve essere compresa tra 0 e 10.000 km, i campi relativi ai minuti
ed ai secondi possono contenere interi da 0 a 59, quello della latitudine da -90 a 90, della
longitudine da -180 a 180. Inoltre vengono sottoposte a verifica anche le coordinate nel
loro complesso, per evitare che l’utente inserisca, ad esempio, una latitudine 90° 24’55”:
sebbene siano validi i singoli valori, questa è maggiore di 90°. Analogamente a quanto
accade nel primo dialog box, l’utente può spostarsi di controllo in controllo premendo
Invio.
Figura 11 - Ricerca tramite coordinate geografiche
4.1.5 Google Earth Plugin integrato
Il componente principale del form è il plugin di Google Earth, su di esso l’utente ha la
facoltà di navigare e modificare parametri quali lo zoom e il tilt nello stesso modo in cui
può farlo nell’applicazione Google Earth. Una volta scelto il punto, per procedere alla
selezione di questo deve mettere la spunta sul checkbox a lato e quindi cliccare sulla
mappa.
4. Interfaccia
25
Figura 12 - Google Earth Plugin e il checkbox per procedere con la selezione del punto
4.2 Form informazioni
Nel form informazioni è possibile visualizzare la versione del programma, delle Javascript
API e del plugin di Google Earth attualmente installato sul pc.
Figura 13 - Form informazioni
4. Interfaccia
26
4.3 Form emissioni
Il form emissioni presenta i dati relativi alle emissioni inquinanti, ovvero i risultati delle
query sul database PRTR.
Figura 14 - Form emissioni
La struttura prevede una navigazione per schede:
• Regional emissions: contiene il dettaglio delle emissioni nella regione circolare
scelta dall’utente;
• Chemical info: presenta lo storico del prodotto chimico selezionato nella prima
scheda ed i report in cui è presente;
• Facility info: elenca le informazioni relative al report selezionato nella scheda
precedente.
4. Interfaccia
27
4.3.1 Scheda Regional emissions
Nella scheda Regional emissions è presente un dialog box in cui l’utente deve selezionare
da una combobox il periodo d’interesse ed inserire il raggio in chilometri della
circonferenza il cui centro è il punto scelto precedentemente sulla mappa. Il risultato della
query viene evidenziato in una tabella che elenca i prodotti chimici dichiarati nei report dei
complessi la cui locazione è all’interno dell’ideale circonferenza.
Per ogni prodotto si indica la quantità di emissioni (in kg) in:
• Aria
• Sottosuolo
• Acqua
• Terra
• Totale
In fondo alla scheda è visualizzato il grafico relativo al prodotto chimico del record
selezionato.
Figura 15 - Form emissioni, scheda Regional emissions
4. Interfaccia
28
4.3.2 Scheda Chemical info
Nella scheda Chemical info l’utente può avere informazioni aggiuntive sul prodotto
chimico selezionato tramite una tabella che ne rappresenta lo storico. Sono infatti elencati i
valori delle emissioni divisi per i periodi dei report in cui il prodotto compare. Il risultato
di tale query è rappresentato anche da un diagramma a colonne, al di sotto del quale
un’altra tabella elenca i report, visualizzandoli mediante il nome del complesso che lo ha
stilato ed il periodo a cui il contenuto fa riferimento.
Figura 16 - Form emissioni, scheda Chemical info
4.3.3 Scheda Facility info
La terza scheda, Facility info, evidenzia informazioni riguardanti il report selezionato
precedentemente, quindi sul complesso che lo ha stilato e sui valori delle emissioni del
prodotto chimico scelto dall’utente nella prima scheda.
Del complesso si forniscono:
4. Interfaccia
29
• Indirizzo
• Città
• E-mail
• Telefono
• Sito internet
• Nome della compagnia
Per quanto riguarda il prodotto chimico, il tipo di informazioni visualizzate ricalca quanto
visto finora, ovverosia i valori in kg delle emissioni nell’aria, nel sottosuolo, nell’acqua,
sulla terra e in totale.
Figura 17 - Form emissioni, scheda Facility info
4.4 Esempio d’utilizzo
L’utente vuole avere informazioni riguardo alle emissioni inquinanti nel raggio di 100 km
dall’edificio centrale dell’Università di Trieste, dati riferiti all’anno 2000.
4. Interfaccia
30
• Eseguito l’applicativo e caricatosi il plugin di Google Earth, nel primo dialog box
inserisce l’indirizzo, “P.le Europa, Trieste, Italia”, e l’altezza della camera view,
400 metri. Quindi preme il bottone Fly to!;
• Una volta caricata la mappa, mette la spunta sul checkbox e procede alla selezione
del punto con un click in corrispondenza dell’edificio centrale;
• Nella prima scheda del form che in seguito compare, seleziona “Year 2000” nella
combobox relativa al periodo, inserisce “100” nella textbox riferita al raggio e
preme Submit Query;
• La tabella sottostante elenca i dati riguardanti le emissioni, selezionando uno dei
record può accedere alle informazioni della seconda e terza scheda del form.
4.5 PRTR Google Earth Interface: requisiti per
l’installazione
L’applicativo presenta i seguenti requisiti per l’installazione:
• Risoluzione dello schermo minima: 1024 x 768;
• Google Earth Plugin7 versione 6 preinstallato, nel caso fosse installato anche
Google Earth8 assicurarsi che sia aggiornato alla stessa versione.
Per i requisiti di tali applicazioni si rimanda ai rispettivi siti;
• Microsoft Chart Controls for Microsoft .NET Framework 3.59;
• Microsoft .NET Framework.
7 Per il download: http://www.google.com/intl/it/earth/explore/products/plugin.html 8 Per il download: http://www.google.com/earth/index.html 9 Per il download: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C
5. Implementazione
31
5. Implementazione
In questo capitolo viene descritta l’implementazione dell’applicativo, il cui codice è stato
scritto per intero dal laureando eccezion fatta per le righe generate automaticamente
dall’IDE utilizzato. Qui di seguito vengono presentate nel dettaglio le parti salienti
dell’applicativo, si tralasciano quelle riguardanti l’aspetto grafico o la gestione delle
eccezioni mediante blocchi try-catch-finally o funzioni di minor interesse, per la lettura
delle quali si rimanda al listato sorgente.
5.1 Tecnologie software utilizzate
Dall’analisi dei vincoli di progetto si apprende che l’applicativo deve essere stand-alone ed
integrare le funzionalità di Google Earth, le cui API però nascono con l’obiettivo di
consentire agli sviluppatori di scrivere applicazioni web. Ne consegue la necessità di
scrivere due parti di codice distinte e quindi di integrarle mediante gli strumenti opportuni.
A tale scopo, si è scelto di utilizzare Javascript per quanto riguarda il plugin e C# per
l’applicativo stand-alone all’interno del quale il primo deve essere integrato. Quali
strumenti di supporto allo sviluppo sono stati utilizzati Notepad++ versione 5 e Visual
Studio 2008.
5.2 Codice
5.2.1 Caricamento di Google Earth Plugin
Il seguente codice è tratto dal file GEPlugin.html, include le istruzioni di caricamento del
plugin, le funzioni di inizializzazione e di gestione della camera view.