Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoCarolina Corradi Modificato 8 anni fa
1
+ Geolocalizzazione Nicolò Sordoni
2
+ Servizi di localizzazione In Windows Phone, la posizione dell’utente può essere rilevata in 3 differenti modi: GPS: è il meccanismo più preciso, ma ha un elevato consumo di batteria e richiede che l’utente si trovi in uno spazio aperto. Rete 3G: Si basa sulla triangolazione delle celle della rete cellulare. Consuma poca batteria, ma è molto meno precisa del GPS. Wi-Fi: Si basa sul router Wi-FI al quale il telefono si connette. Consumo di batteria medio; posizione relativamente precisa.
3
+ Servizi di localizzazione Per poter usare tali servizi, è necessario innanzitutto abilitare il relativo permesso nel file manifest.
4
+ GeoLocator Il namespace che contiene le classi che ci permettono di lavorare con la posizione del dispositivo è Windows.Device.GeoLocation. Il componente più importante è sicuramente il GeoLocator, che ci offre la possibilità di: Ottenere la posizione attuale dell’utente. Avviare un listener che rimarrà in ascolto delle modifiche alla posizione, ed invocherà un apposito metodo ogni volta che la posizione cambierà. E’ possibile specificare distanza e tempo minimi fra un aggiornamento ed il successivo. Avviare un listener che ci informa ogni volta che lo stato del segnale cambia (ad esempio quando non è più disponibile).
5
+ Ottenere la posizione corrente Per ottenere la posizione corrente è sufficiente creare un’istanza del GeoLocator ed invocare il metodo asincrono GetGeopositionAsync. Tale metodo restituirà un oggetto di tipo Geoposition, che tramite la proprietà Coordinate, ci consentirà l’accesso a latitudine, longitudine, altitudine, ecc.. Nell’esempio si fa uso di un TextBlock per mostrare all’utente le coordinate attuali
6
+ Intercettare i cambiamenti di posizione Per intercettare e gestire opportunamente le modifiche alla posizione del device, è consigliato innanzitutto specificare: Tempo minimo che deve intercorrere fra un’aggiornamento ed il successivo Distanza minima fra due aggiornamenti consecutivi. Livello di precisione. In tal modo è possibile regolare il consumo di batteria in funzione delle nostre esigenze di frequenza/precisione di aggiornamento.
7
+ Intercettare i cambiamenti di posizione
8
+ La soluzione appena proposta presenta un problema: il metodo associato al cambio di posizione, sarà eseguito da un Thread differente da quello che gestisce l’interfaccia, non avendo quindi i permessi per modificarla. E’ necessario pertanto un meccanismo per richiedere l’esecuzione di operazioni al GUI Thread. Tale meccanismo è messo a nostra disposizione da un oggetto denominato Dispatcher, accessibile tramite la proprietà this.Dispatcher. Tale classe espone il metodo RunAsync, al quale è necessario passare la priorità associata all’operazione, ed il riferimento alla funzione che dovrà essere eseguita.
9
+ Intercettare i cambiamenti di livello del segnale Il livello del segnale è accessibile tramite la proprietà LocationStatus. In alternativa è possibile associare un metodo, come fatto per l’evento PositionChanged, all’evento StatusChanged. I possibili stati del segnale sono: Disabled : Servizi disabilitati dall’utente nelle impostazioni. Initializing : Non ancora pronti NotAvailable : Il device non possiede i servizi di localizzazione. NoData : I servizi sono attivi e pronti, ma non sono disponibili le informazioni sulla posizione NotInitialized : I servizi sono attivi ma l’app non ha ancora richiesto dati. Ready : Servizi attivi che stanno ricevendo correttamente i dati
10
+ Mappe Nicolò Sordoni
11
+ Ottenere un token Per poter utilizzare le mappe direttamente nella nostra applicazione, è necessario accedere con il proprio account al seguente indirizzo: https://www.bingmapsportal.comhttps://www.bingmapsportal.com Alla voce “My Account”, selezionare “Create or view keys”. Fare click su “Click here to create a new key” e compilare i campi obbligatori. Per completare il procedimento premere il bottone “Create” e verrà generata una nuova key. E’ necessario copiarla, dato che sarà indispensabile per utilizzare le mappe.
12
+ MapControl All’interno della nostra pagina XAML, è necessario inserire un oggetto di tipo MapControl. Per utilizzarlo è necessario aggiungere un namespace alla Page (Windows.UI.Xaml.Controls.Maps); per farlo, è necessario aggiungere il seguente attributo al tag : A questo punto possiamo aggiungere il MapControl all’interno della pagina, valorizzando l’attributo MapServiceToken con la chiave ottenuta da Microsoft.
13
+ Visualizzare un’area specifica Per mostrare all’interno della mappa un’area precisa, è necessario impostare il Centro di tale area ed il livello di Zoom. Per farlo è necessario lavorare a livello di codice, valorizzando le seguenti proprietà: Center : per specificare il centro della mappa dobbiamo assegnare alla proprietà Center un oggetto di tipo GeoPoint. L’utilizzo più frequente è mostrato nell’esempio che segue, in cui l’istanza di GeoPoint viene creata a partire da un oggetto di tipo BasicGeoposition, nel quale impostiamo Latitude e Longitude con le coordinate che vogliamo utilizzare.
14
+ Visualizzare un’area specifica ZoomLevel: valore double compreso fra 1 e 20 che indica il livello di zoom desiderato. LandmarksVisible: valore booleano usato per specificare se gli edifici 3D dovranno essere mostrati o meno.
15
+ Aggiungere un marker Il MapControl ci offre la possibilità di aggiungere dei marker, per contrassegnare la posizione di determinati oggetti di interesse. L’esempio seguente mostra come aggiungere un marker che rappresenti la posizione dell’utente.
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.