Nello script precedente, abbiamo visto come la Universal Windows Platform include, tra le altre cose, un sistema di mappe molto avanzato che, come sappiamo, grazie all'arrivo di Windows 10 Anniversary Update è anche in grado di supportare l'inking attraverso la penna.
Per disegnare il primo punto sulla mappa, abbiamo bisogno di recuperare la posizione corrente:
private async Task<Geopoint> GetCurrentLocationAsync() { var accessStatus = await Geolocator.RequestAccessAsync(); switch (accessStatus) { case GeolocationAccessStatus.Allowed: Geolocator geolocator = new Geolocator(); geolocator.DesiredAccuracyInMeters = 50; Geoposition pos = await geolocator.GetGeopositionAsync(); return pos.Coordinate.Point; default: return null; } }
Questa funzione non fa altro che andare a chiedere a livello applicativo se l'utente ha dato il permesso a condividere la sua posizione e, una volta ottenuti i permessi necessari, recupera la posizione corrente con un raggio di accuratezza di circa 50 metri.
Perché queste funzionalità siano abilitate, come sviluppatori dobbiamo indicarne il supporto a livello di file di manifest (spuntando la casella relativa alla localizzazione). L'utente finale potrà decidere attraverso un messaggio simile a questo se consentire il permesso alla nostra applicazione:
Una volta recuperata la posizione corrente dell'utente, possiamo disegnare sul controllo mappa nello XAML una prima icona:
var icon = new MapIcon { Location = currentLocation, NormalizedAnchorPoint = new Point(0.5, 0.5), Image = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/myLogo.png")) }; Map.MapElements.Add(icon);
In questa seconda fase abbiamo visto come disegnare i primi punti sulla mappa, nei prossimi script affronteremo più nel dettaglio come calcolare le distanze ed i percorsi tra i due punti.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Miglioramenti agli screen reader e al contrasto in Angular
Hosting di componenti WebAssembly in un'applicazione Blazor static
Eseguire una GroupBy per entity in Entity Framework
Testare l'invio dei messaggi con Event Hubs Data Explorer
Installare le Web App site extension tramite una pipeline di Azure DevOps
Utilizzare Azure Cosmos DB con i vettori
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Migrare una service connection a workload identity federation in Azure DevOps
Gestire undefined e partial nelle reactive forms di Angular
Eseguire query verso tipi non mappati in Entity Framework Core
Utilizzare database e servizi con gli add-on di Container App
Eseguire attività pianificate con Azure Container Jobs
I più letti di oggi
- Migliorare la scalabilità delle Azure Function con il Flex Consumption
- Accettare un tipo nativo nel body di una richiesta a ASP.NET Web API
- Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
- Verificare se una lista è vuota usando la proprietà Count o i metodi Any e Count
- Chiamare direttamente un numero di telefono con HTML5