presentazione sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati di...
Post on 05-Jul-2015
453 Views
Preview:
TRANSCRIPT
Sviluppo di un’applicazione Windows
Phone 7.5 per la visualizzazione di
dati di emissioni inquinanti
Relatore:
Chiar.mo Prof. Maurizio FERMEGLIA
Laureando:
Marco VIRGOLIN
Università degli Studi di Trieste
Facoltà di Ingegneria
Corso di laurea triennale in Ingegneria dell’Informazione
Curriculum Informatica
a.a. 2011/2012
Pollutant Release Transfer Register (PRTR)
• Database ambientali: dati relativi ad emissioni inquinanti e sostanze tossiche
prodotte da impianti industriali
National Pollutant Inventory (Australia), European Pollutant Emission Register (Europa), Toxic Release Inventory (Stati Uniti d’America)
• PRTR dell’Università degli Studi di Trieste & ICS–UNIDO obiettivo: monitoraggio delle emissioni inquinanti nei
paesi in via di sviluppo
attualmente: dati di test (Alessandria d’Egitto, Ankara, Atene)
Soluzione
alternativa a
quelle esistenti
Obiettivo e motivazioni
Rendere le
informazioni più
accessibili
Trend del
mercato
Software
user friendly
Sviluppo di un’applicazione per smartphone
Stato dell’arte
WCF
• PRTR Database
• PRTRService
• PRTR Web Application
• PRTR Google Earth Interface
Lavoro svolto
WCF
• PRTRService
Contratti, Servizi
• Applicazione smartphone
Sistema operativo scelto
Windows Phone 7.5
• Licenze di Microsoft Dreamspark
Visual Studio 2010 Ultimate
Windows Phone developer account
• eLabs di
supporto per lo sviluppo dell’applicazione
dotazione di uno smartphone
• Web service WCF
Progettazione
Use Case Diagram
• esplorazione della
mappa
• modifica delle
impostazioni
• visualizzazione dei
risultati
Applicazione smartphone
Bing Maps Server
• mappe
GeocodeService
• georeferenziazione
PRTRService
• periodi d’analisi
• coordinate degli
impianti
• dati di emissioni
inquinanti
PRTR Database
• dati e stored
procedure
GUI dell’applicazione
MainPage
mappa
aerial
campo
di ricerca
zoom in
zoom out
pushpin
impianti
localizzazione
del dispositivo
mappa
road
scelta del
point of view
visualizzazione
dei risultati
GUI dell’applicazione
SettingsPage
attivazione / disattivazione
del servizio di localizzazione
scelta della lunghezza del
raggio del cerchio d’analisi
GUI dell’applicazione
ResultsPage
scelta del
periodo
d’analisi
periodo
utilizzato
tabella con
i dati delle
emissioni
Realizzazione di PRTRService
• ServiceContract
OperationContract
[ServiceContract] public interface IStatistics { [OperationContract] EmissionInfo[] GetByRegion( int longitudeDeg, int longitudeMin, int longitudeSec, int latitudeDeg, int latitudeMin, int latitudeSec, float range, string cultureCode, int idPeriod ); […]
• DataContract
DataMember
[DataContract] public class EmissionInfo { [DataMember] public int IDPeriod { get; set; } [DataMember] public string FullName { get; set; } [DataMember] public string Title { get; set; } [DataMember] public double QuantityAir { get; set; } […]
Realizzazione di PRTRService
• Realizzazione dei metodi public class StatisticsService:IStatistics { EmissionInfo[] IStatistics.GetByRegion(int longDeg, int longMin, int longSec, int latDeg, int latMin, int latSec, float range, string cultureCode, int idPeriod){ var list = new List<EmissionInfo>(); SqlConnection connection = new SqlConnection(); connection.ConnectionString = ConfigurationManager. ConnectionStrings["PRTR"].ConnectionString; connection.Open(); String storedProcedure = "Statistics_GetByRegion"; SqlCommand command = new SqlCommand(storedProcedure, connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add("@LongitudeDeg", SqlDbType.Int).Value = longitudeDeg; SqlDataReader dataReader = command.ExecuteReader(); if (dataReader.HasRows){ while (dataReader.Read()){ […]
Utilizzo di PRTRService
• Add Service Reference
Utilizzo di PRTRService
• Utilizzo dei metodi
var statistics = new StatisticsClient("BasicHttpBinding_IStatistics"); statistics.GetByRegionAsync( AppSettings.longinDegrees[0], AppSettings.longinDegrees[1], AppSettings.longinDegrees[2], AppSettings.latinDegrees[0], […] radius, "en-US", idPeriod ); […] statistics.GetByRegionCompleted += (s, e) => { List<EmissionInfoViewModel> EmissionInfos = new List<EmissionInfoViewModel>(); foreach (var item in e.Result){ EmissionInfos.Add(new EmissionInfoViewModel { QuantityAir = item.QuantityAir […]
Conclusioni
• Stato attuale del lavoro
Pollutant Releases, scaricabile gratuitamente dal
Marketplace
• Possibili sviluppi futuri
creazione di applicazioni simili per altri sistemi
operativi (framework open source PhoneGap)
ampliamento dei servizi offerti da PRTRService
GetByFacilityChemical -> Statistics_GetByFacilityChemical
GetByPeriod -> Statistics_GetByPeriod
Grazie per l’attenzione
top related