tesinaGeolocalizzazione in WP (373969 byte)
Transcript
tesinaGeolocalizzazione in WP (373969 byte)
La Geolocalizzazione in Windows Phone Corso di programmazione di sistemi mobile Autore: Sparaventi Filippo A.A. 2014/2015 Sparaventi Filippo Matricola: 654799 1. Cos’è la geolocalizzazione? La geolocalizzazione è l’identificazione della posizione geografica nel mondo reale di un oggetto, ad esempio un telefono cellulare, un computer. Ci sono diverse tecnologie di localizzazione: GPS (basato su segnali radio ottenuti da satelliti intorno alla terra), localizzazione tramite celle telefoniche, tramite rete Wi-Fi o WLAN (basate sul router alla quale ci si connette) o anche tramite sistemi ARVA e RECCO nel caso di persone sepolte da valanga. In windows Phone, la posizione dell’utente può essere rilevata tramite: • GPS: è il meccanismo più preciso, richiede uno spazio aperto ed ha un elevato consumo di batteria. • Rete 3G: si basa sulla triangolazione delle celle della rete, consuma poca batteria ma è meno precisa del GPS. • Wi-Fi: basata sul router al quale si è connessi, posizione relativamente precisa e medio consumo di batteria. 2. GeoLocator Il namespace che contiene le classi relative alla geolocalizzazione è Windows.Device.GeoLocation. • Il Geolocator ci offre la possibilità di ottenere la posizione dell’utente • Avviare un listaner che rimane sempre in ascolto e ad ogni cambio di posizione invoca un metodo apposito; è possibile specificare il tempo minimo tra un aggiornamento e l’altro. • Avviare un listener che ci informa ogni volta che lo stato del segnale cambia, anche quando non è più disponibile. LA GEOLOCALIZZAZIONE PAGINA "2 3. Localizziamoci! I primi passi.. Windows Simulator è un simulatore che ci da la possibilità di testare la nostra applicazione in modo più accurato. Questo simulatore permette infatti di impostare le coordinate geografiche, inclusa l’altitudine. I dati geo localizzati sono informazioni delicate, in quanto potrebbero essere lesive nei confronti dell’utente, per questa ragione, per poter accedere alla location è necessario abilitare il relativo permesso nel file manifest. LA GEOLOCALIZZAZIONE PAGINA "3 4. Tracciare la posizione dell’utente Per ottenere la posizione corrente basta creare un istanza del Geolocator e invocare il metodo GetGeopositionAsync. Questo metodo restituirà un oggetto di tipo Geoposition, e tramite le proprietà Coordinate ci consente l’accesso, nel nostro caso, alla latitudine e longitudine. Per una maggior precisione, o per un applicazione destinata ad altro scopo il metodo posizioneCorrente può essere ampliato in questo modo, in modo da ottenere diversi tipi di dati. LA GEOLOCALIZZAZIONE PAGINA "4 5. Tracciare i cambi di posizione Questo metodo associa al Geolocator un metodo che gestisce tutti gli aggiornamenti della posizione del device e mostra all’utente le varie posizioni dopo le variazioni. La soluzione che abbiamo proposto qui sopra sarà eseguita da un Thread differente da quello che gestisce l’interfaccia, è quindi necessario un meccanismo che richiede l’esecuzione di operazioni al GUI Thread. LA GEOLOCALIZZAZIONE PAGINA "5 Questo meccanismo è messo a disposizione da un oggetto denominato Dispatcher. Questa classe espone il metodo RunAsync, al quale deve essere passata la priorità associata all’operazione ed il riferimento alla funzione che dovrà essere eseguita. In questo caso viene eseguito al suo interno uno Switch che intercetta i cambiamenti nel livello del segnale. Ciò è accessibile tramite la proprietà LocationStatus. In alternativa è possibile associare un metodo come fatto per l’evento PositionChanged all’evento StatusChanged. L’evento sopra elencato viene collegato quando lo stato espresso dalla proprietà Status dell’oggetto PositionChangedEventsArgs ricevuto come parametro, cambia. La proprietà Status può assumere i seguenti valori: Le righe di codice utilizzare sin dall’inizio possono dare vita a questo tipo di output: Per quanto riguarda l’intercettazione dei cambiamenti di segnale Per la parte che riguarda la rilevazione della posizione dell’utente svolto nella prima parte. LA GEOLOCALIZZAZIONE PAGINA "6