Al giorno d'oggi, qualsiasi programma di gestione delle foto è in grado di organizzare le nostre foto raggruppandole secondo una posizione geografica: in questo modo è, ad esempio, più semplice vedere tutte le foto di una vacanza, oppure migliorare la velocità di indicizzazione di Windows quando si effettua una semplice ricerca.
Tramite Windows 10 e la Universal Windows Platform esiste una classe che si chiama GeotagHelper, il cui lavoro è quello di aggiungere (o leggere) i metadata relativi alla posizione geografica sui file. Per scrivere i metadati, data una posizione geografica conosciuta, è sufficiente questo metodo:
private async Task WriteGeotagAsync(StorageFile imageFile) { var position = new BasicGeoposition() { Latitude = 47.620491, Longitude = -122.349319, Altitude = 158.12 }; try { await GeotagHelper.SetGeotagAsync(imageFile, new Geopoint(position)); } catch (Exception) { // File I/O errors } }
Per essere certi che l'operazione sia andata a buon fine, è sufficiente effettuare un'operazione di lettura dei dati e osservare la corrispondenza con la scrittura effettuata in precedenza:
private async Task ReadGeotagAsync(StorageFile imageFile) { var geopoint = await GeotagHelper.GetGeotagAsync(imageFile); if (geopoint == null) await new MessageDialog("Nessun geotag rilevato").ShowAsync(); else await new MessageDialog($"Latitude: {geopoint.Position.Latitude} -- Longitude: {geopoint.Position.Longitude}").ShowAsync(); }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Reactive form tipizzati con modellazione del FormBuilder in Angular
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Generare file per il download da Blazor WebAssembly
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Elencare le container images installate in un cluster di Kubernetes
C# 12: Cosa c'è di nuovo e interessante
Eseguire operazioni sui blob con Azure Storage Actions
Monitorare i server on-premises con Azure Arc
Eseguire query verso tipi non mappati in Entity Framework Core
Utilizzare flat e flatMap per appiattire array innestati in array
Effettuare il binding di date in Blazor