Abbiamo introdotto l'uso del Bing Maps SDK per usare la mappe di Bing nelle Windows Store app in un precedente articolo:
https://www.winrtitalia.com/articoli/windows8/bing-maps-sdk-winrt-windows8.aspx
In WinRT possiamo aggiungere un'ulteriore funzionalità alle nostre mappe tracciando la posizione dell'utente, per visualizzarla anche direttamente su una mappa Bing.
Per questa operazione abbiamo a disposizione l'oggetto Geolocator e il suo evento PositionChanged.
private Pushpin _pin; private Geolocator _geolocator; public MainPage() { this.InitializeComponent(); _pin = new Pushpin(); map.Children.Add(_pin); _geolocator = new Geolocator(); _geolocator.PositionChanged += (Geolocator sender, PositionChangedEventArgs args) => { this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler( () => { var location = new Location(args.Position.Coordinate.Latitude, args.Position.Coordinate.Longitude); MapLayer.SetPosition(_pin, location); map.SetView(location, 15.0f); })); }; }
Come possiamo vedere dallo snippet, il suo uso è molto semplice: l'evento PositionChanged si scatena automaticamente quando viene recuperata la posizione, senza la necessità di dichiarare un metodo di inizializzazione. I parametri passati all'event handler contengono proprio le informazioni di latitudine e longitudine, che possiamo utilizzare per passarle alla mappa.
Per poter tracciare la posizione dobbiamo aggiungere Location tra le capabilities gestibili nel manifest; al primo avvio dell'applicazione viene chiesta conferma all'utente, per consentire all'app di tracciarne la posizione, con una finestra modale visibile in figura.

Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare attributi generici in C#
Specificare il numero di parentesi graffe nella string interpolation in combinazione con i string literal in C#
Montare blob e file share su Azure App Service
Sfruttare l'output cache di ASP.NET Core 7 con i controller
Sviluppo applicazioni x-plat con .NET MAUI
ChatOps con GitHub
Elencare le container images installate in un cluster di Kubernetes
Modernizzare le applicazioni WPF e Windows Forms con Blazor
Evitare la command injection in un workflow di GitHub
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
3 metodi JavaScript che ogni applicazione web dovrebbe contenere - Parte 2