Nello script #104 abbiamo visto come sfruttare le api di geolocalizzazione di HTML5 per ottenere la posizione dell'utente. La posizione viene fornita in formato latitudine/longitudine che è perfetto quando dobbiamo lavorare con le mappe, ma inutile se dobbiamo anche mostrare all'utente informazioni sull'indirizzo in cui si trova.
Per ottenere tutte le informazioni sull'indirizzo civico corrispondente a una latitudine/longitudine possiamo usare i servizi REST di Bing. Essendo REST, questi servizi possono essere invocati da JavaScript ma, essendo su un altro dominio, dobbiamo utilizzare JSONP per ottenere i risultati.
L'esempio che segue mostra il codice necessario ad invocare i servizi REST di Bing.
<html> <head> <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-2.0.1.js"></script> <script type="text/javascript"> $(document).ready(function () { $.ajax({ url: "http://dev.virtualearth.net/REST/v1/Locations/47.64054,-122.12934", dataType: "jsonp", data: { key: "<BingMapsKey>", }, jsonp: "jsonp", success: function (data) { $("#searchResult").append( data.resourceSets[0].resources[0].address.formattedAddress ); } }); }); </script> </head> <body> <div id="searchResult" > </div> </body> </html>
La prima cosa da notare nello script è l'URL invocato. L'ultima parte dell'URL contiene la latitudine e la longitudine (separati da virgola (,) e con il punto (.) come separatore decimale) del punto di cui si vuole trovare l'indirizzo. Come seconda cosa da notare c'è il fatto che come parametro passiamo la BingMapsKey. Questa è obbligatoria e va ottenuta attraverso il pannello di controllo di Bing. Infine, il codice nel callback "success" mostra come ottenere l'indirizzo completo formattato come stringa, ma ci sono anche i singoli campi come la città, l'indirizzo, lo stato e così via.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Potenziare Azure AI Search con la ricerca vettoriale
Cambiare la chiave di partizionamento di Azure Cosmos DB
Utilizzare la session affinity con Azure Container Apps
Routing statico e PreRendering in una Blazor Web App
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Usare lo spread operator con i collection initializer in C#
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Eseguire operazioni sui blob con Azure Storage Actions
Estrarre dati randomici da una lista di oggetti in C#
Implementare il throttling in ASP.NET Core