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