Creare un'app Windows 8 di meteo

di Stefano Marchisio, in WinRT,

La caratterisctica principale di Windows 8 è senz'altro la nuova interfaccia grafica, infatti fornisce all' utente una user experience adatta ai dispositivi di nuova generazione. Tra le varie applicazioni installate di default, troviamo anche quella "METEO"; la prima cosa che ci viene in mente nel caso decidessimo di svilupparne una nostra è: "Come creo i servizi lato server e dove recupero i dati da visualizzare?".

Alcuni di voi forse conoscono già gli OPENDATA: "I dati aperti sono dati che possono essere liberamente utilizzati, riutilizzati e ridistribuiti da chiunque, soggetti eventualmente alla necessità di citarne la fonte e di condividerli con lo stesso tipo di licenza con cui sono stati originariamente rilasciati" e i provider più comuni sono le Pubbliche Amministrazioni. Le Pubbliche Amministrazioni utilizzano i soldi dei contribuenti, cioè i soldi di tutti; quindi le banche dati (soprattutto quelle geospaziali), dovrebbero essere di proprietà pubblica, e quindi rese disponibili e fruibili a chi desidera utilizzarle in un'ottica di pubblica utilità. Ciò raramente accade, anche se negli ultimi tempi (anche grazie ad alcune direttive Europee/Statali), alcune amministrazioni vituose stanno iniziando a rendere pubblici i loro dati.

Tra queste troviamo l'ARPA Piemonte: l'Agenzia Regionale per la Protezione dell'Ambiente del Piemonte. Consultando il Geoportale dell'ARPA Piemonte (http://webgis.arpa.piemonte.it/geoportale), noteremo con piacere che sono stati messi online alcuni dati sotto forma di servizi GIS. Tra i servizi aperti al pubblico, ne troviamo alcuni che fanno il caso nostro: Temperatura tempo reale, Vento tempo reale, Pluviometriche tempo reale.

Detto questo, risulta molto più semplice la realizzazione di un'applicazione "METEO" su un device Windows 8. Ciò risulta di vitale importanza nel caso la nostra applicazione deve essere distribuita in forma gratuita, perchè non dobbiamo sostenere i costi per creare e mantenere un'infrastruttura lato server (con la relativa rete di sensori).

Nota

IMPORTANTE: prima di utilizzare gli OPENDATA, è bene consultare sempre le licenze con cui sono stati pubblicati.

Tecnologie utilizzate (OPENDATA & Geographic information system)

Premesso che la nostra applicazione avrà come target un device sul quale è presente Windows 8, passiamo ora ad analizzare le tecnologie impiegate, al fine di iniziare a fare una macro analisi architetturale.

Un GIS (o Geographic information system) è un sistema computerizzato che permette l'acquisizione, la registrazione, l'analisi, la visualizzazione e la restituzione di informazioni derivanti da dati geografici. Un sitema GIS prevede la memorizzazione di queste informazioni in un database relazionale, la codifica dell'informazione avviene principalmente attraverso due tipologie di dati: il dato vettoriale (o future) e dato raster. Nel prosieguo di quest' articolo mi limitero a nominare il dato vettoriale (o future), usando solo il termine feature. La visualizzazione delle informazioni desiderate avviene poi attraverso una struttura a layer, dove ogni layer rappresenta una categoria/tipologia d' informazione, in modo da creare in modo dinamico una mappa con diversa granularità d'informazione.

  • Il dato raster permette di rappresentare il mondo attraverso una matrice di celle dette pixel. A ciascun pixel sono associate le informazione relative a ciò che esso rappresenta sul territorio. Può anche non essere memorizato in un database.
  • I dati future sono costituiti da elementi semplici quali: punti, linee e poligoni, memorizzati in base delle loro coordinate. A ciascun elemento è associato un record del database; oltre alle informazioni geospaziali contiene anche gli attributi descrittivi dell'oggetto rappresentato (citta, via, cap, etc..).

Nel caso si operi con dati in formato future è possibile fare delle query, sia geospaziali (sulle coordinate) che sugli attributi; al fine di farci restituire un sottoinsieme di dati. Ad ogni tipoogia di dato corrisponde una tabella nel database, che verrà poi associata ad un layer in fase di visualizzazione (cioè la città saranno su un layer e le vie su un'altro layer e così via dicendo). Il risultato restituito può essere di 2 tipi:

  • Tipo immagine, ovvero la proiezione è effettuata sul server di mappe, il codice presente sul client si limiterà solamente a visualizzare l'immagine restituita sulla mappa.
  • Dato grezzo, gengono generalmente restituiti dati in formato JSON/XML, sarà poi il codice all' interno del client che elabora e proietta i dati sulla mappa.

La differenza tra i due scenari sopra elencati sta nel fatto che; nel primo caso non è possibile un interazione con l'utente, nel secondo caso è possibile un interazione con l'utente, per esempio implementando un popup che visualizza alcuni attributi.

Vediamo ora come accedere ai servizi forniti dal Geoportale di ARPA Piemonte. Al seguente link è possibile trovare la pagina web di partenza: http://webgis.arpa.piemonte.it/geoportale/index.php/it/meteorologia.html (attenzione è paginata).

I Servizi offerti da ARPA Piemonte utilizzano un server di mappe proprietario (quello di ESRI per l 'appunto). Per trovare il link del servizio rest, cliccare su "metadati". Verrà aperta una pagina web con le informazioni descrittive del servizio. In fondo alla pagina verrà visualizzato un riquadro "Distribuzione dati/Accesso on line", cliccare su "Risorsa on line". Verrà visualizzata una nuova pagina, in alto è possibile vedere la label "Layer", cliccare su "Temperatura".

http://webgis.arpa.piemonte.it/free/rest/services/climatologia-meteorologia-atmosfera/Misure_Temperatura_tempo_reale/MapServer

http://webgis.arpa.piemonte.it/free/rest/services/climatologia-meteorologia-atmosfera/Misure_Temperatura_tempo_reale/MapServer/0

Questi due link hanno una particolarità, se richiamati all'interno di un browser forniranno la descrizione del servizio, se richiamati all'interno del client/javascript forniranno la mappa (un pò come avviene con WCF/WSDL). Quali dei 2 utilizzare dipende poi da ciò che vogliamo fare oltre che dalle classi utilizzate all'interno del client/javascript: "ArcGISDynamicMapServiceLayer " , "FeatureLayer ". Al primo link sono associati 2 sottolayer ("Temperatura","Strumenti che non hanno fornito dati") che avranno rispettivamente come suffisso "/0" e "/1". Il secondo link identifica il sottolayer "Temperatura" sul quale è presente il suffisso "/0". Vedere gli esempi di codice nella demo per maggiori dettagli.

3 pagine in totale: 1 2 3
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc