Presentazione sviluppo di un'applicazione windows phone 7.5 per la visualizzazione di dati di emissioni inquinanti
1. Università degli Studi di Trieste
Facoltà di Ingegneria
Corso di laurea triennale in Ingegneria dell’Informazione
Curriculum Informatica
Sviluppo di un’applicazione Windows
Phone 7.5 per la visualizzazione di
dati di emissioni inquinanti
a.a. 2011/2012
Relatore: Laureando:
Chiar.mo Prof. Maurizio FERMEGLIA Marco VIRGOLIN
2. 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)
3. Obiettivo e motivazioni
Sviluppo di un’applicazione per smartphone
Rendere le
Software
informazioni più
user friendly
accessibili
Soluzione
Trend del
alternativa a
mercato
quelle esistenti
4. Stato dell’arte
• PRTR Database
• PRTRService
• PRTR Web Application
• PRTR Google Earth Interface
WCF
6. 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
7. Progettazione
Use Case Diagram Bing Maps Server
• mappe
Applicazione smartphone GeocodeService
• georeferenziazione
• esplorazione della
mappa PRTRService
• modifica delle
impostazioni • periodi d’analisi
• visualizzazione dei • coordinate degli
risultati impianti PRTR Database
• dati di emissioni • dati e stored
inquinanti procedure
8. GUI dell’applicazione
MainPage
mappa
road
pushpin
mappa impianti
aerial
scelta del
zoom out point of view
zoom in localizzazione
del dispositivo
campo
di ricerca visualizzazione
dei risultati
11. Realizzazione di PRTRService
• ServiceContract • DataContract
OperationContract DataMember
[ServiceContract] [DataContract]
public interface IStatistics public class EmissionInfo
{ {
[OperationContract] [DataMember]
EmissionInfo[] GetByRegion( public int IDPeriod {
int longitudeDeg, get; set; }
int longitudeMin, [DataMember]
int longitudeSec, public string FullName {
int latitudeDeg, get; set; }
int latitudeMin, [DataMember]
int latitudeSec, public string Title {
float range, get; set; }
string cultureCode, [DataMember]
int idPeriod public double QuantityAir {
); get; set; }
[…] […]
12. 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()){
[…]
14. 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
[…]
15. 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