Windows Phone 8.1 rilevamento della posizione tramite C# e VB.Net

Articolo introduttivo al posizionamento tramite C# e VB.Net in ambiente Windows Phone 8.1.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

In questo nuovo articolo sulla programmazione di Windows Phone 8.1 tramite l’ambiente di sviluppo Visual Studio 2013 express per Windows, vedremo in maniera introduttivo la gestione del rilevamento della posizione, il tutto con il linguaggio di programmazione VB.Net e C#.

Creazione del progetto

Si crea un nuovo progetto per Windows Phone 8.1, applicazione vuota.
Nell’interfaccia grafica, inseriamo tre caselle di testo, ed un pulsante, il tutto come riportato in questo frammento di codice di tipo XAML.

    <Grid>
        <Button Content="Button" HorizontalAlignment="Left" Margin="20,24,0,0" VerticalAlignment="Top" Click="Button_Click"/>
        <TextBox HorizontalAlignment="Left" Margin="25,90,0,0" TextWrapping="Wrap" Name="textLatitudine" Text="" VerticalAlignment="Top" Width="350"/>
        <TextBox HorizontalAlignment="Left" Margin="25,145,0,0" TextWrapping="Wrap" Name="textLongitudine" Text="" VerticalAlignment="Top" Width="350"/>
        <TextBox HorizontalAlignment="Left" Margin="25,195,0,0" TextWrapping="Wrap" Name="textPosizione" Text="" VerticalAlignment="Top" Width="350"/>
    </Grid>

A questo punto, dobbiamo rendere il tipo di applicazione abilitata al rilevamento della posizione.
Nel file “Package.appManifest”, facciamo click sulla paginetta “Funzionalità” e poi mettiamo la spunta sulla voce “Percorso”, il tutto come mostrato in figura 1.



Figura 1 - le impostazione per settare la posizione.

Stesura del codice

Passiamo in visualizzazione codice, in particolare nell’evento click.
Prima di tutto, dobbiamo inserire lo spazio dei nomi, per la geolocalizzazione.
Qui di seguito il frammento di codice
VB.Net
Imports Windows.Devices.Geolocation
C#
using Windows.Devices.Geolocation;

A livello di classe oppure nell’evento click si crea un oggetto di tipo “Geolocator” che ci permette di gestire il posizionamento.


VB.Net
Dim geo As Geolocator = Nothing
C#
Geolocator geo = null;


Mentre nell’evento click scriviamo il seguente codice che rileva la latitudine, longitudine e l’accuratezza.
VB.Net
  Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)
        If geo Is Nothing Then
            geo = New Geolocator()
        End If
        Dim pos As Geoposition = Await geo.GetGeopositionAsync()
        textLatitudine.Text = "Latitudine: " + pos.Coordinate.Point.Position.Latitude.ToString()
        textLongitudine.Text = "Longitudine: " + pos.Coordinate.Point.Position.Longitude.ToString()
        textPosizione.Text = "Posiione: " + pos.Coordinate.Accuracy.ToString()
    End Sub
C#
private async void Button_Click(object sender, RoutedEventArgs e)
        {
            if (geo == null)
            {
               geo = new Geolocator();
            }
            Geoposition pos = await geo.GetGeopositionAsync();
            textLatitudine.Text = "Latitudine: " + pos.Coordinate.Point.Position.Latitude.ToString();
            textLongitudine.Text = "Longitudine: " + pos.Coordinate.Point.Position.Longitude.ToString();
            textPosizione.Text = "Posiione: " + pos.Coordinate.Accuracy.ToString();
         }
Se facciamo click sul pulsante, provandolo sull’emulatore o sul dispositivo fisico, vedremo che verranno valorizzate le caselle di testo con i valori rilevati.

Conclusioni

L’articolo ha voluto fornire al lettore una semplice introduzione al rilevamento della posizione, utilizzando le classi messi a disposizione dal Framework.
La gestione della posizione può tornare utile e si può utilizzare in vari contesti. Con le nuove classi ed il nuovo ambiente di sviluppo Visual Studio 2013 e versione successive, la creazione di applicazioni in ambito mobile è stato notevolmente sempliicato.