Sto usando l'API di Google Maps per ottenere la distanza tra 2 codici postali del Regno Unito.distanza tra 2 codici postali
var yourPostcode = $("#YourPostcode").val();
var restaurantPostcode = $("#Postcode").val();
var point1 = GetPointFromPostcode(yourPostcode);
var point2 = GetPointFromPostcode(restaurantPostcode);
var distance = point1.distanceFrom(point2, 3959).toFixed(1);
Tuttavia la funzione GetPoint chiamate API di Google in modo asincrono e quindi dalla distanza ora si calcola point1 e 2 non sono stati impostati (credo che questo è ciò che sta accadendo?)
Ho messo avvisi dopo ogni dichiarazione per verificare il valore delle variabili e facendo questo ho ottenuto la distanza per essere il valore corretto, in attesa che clicchi ok deve aver dato abbastanza tempo per ottenere i risultati? Anche se non lo fa più :(
Ecco la funzione di punto di get
function GetPointFromPostcode(postcode) {
var point;
localSearch.execute(postcode + ", UK");
if (localSearch.results[0]) {
var resultLat = localSearch.results[0].lat;
var resultLng = localSearch.results[0].lng;
point = new GLatLng(resultLat, resultLng);
} else {
$(".PostcodeError").append("Postcode Invalid");
}
return point;
}
so di poter impostare una richiamata su ricerca locale per essere chiamato quando i risultati tornare, ma il problema qui è ci sono 2 ricerche.
Quello che voglio è solo chiamare la distanza in linea d'calcolare dopo che entrambe le ricerche hanno restituito risultati.
sai come potrei fare questo?
Grazie