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
Evitare il flickering dei componenti nel prerender di Blazor 8
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Miglioramenti nell'accessibilità con Angular CDK
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Introduzione alle Container Queries
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Utilizzare un service principal per accedere a Azure Container Registry
Assegnare un valore di default a un parametro di una lambda in C#
C# 12: Cosa c'è di nuovo e interessante
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
I più letti di oggi
- Simulare Azure Cosmos DB in locale con Docker
- Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2024 - Milano
- .NET Conference Italia 2023 - Milano e Online