domenica 1 novembre 2015

Windows Phone rilevare la posizione tramite C# e VB.Net

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_windows-phone-81-rilevamento-della-posiz_1394.aspx


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.

Nessun commento: