Estoy utilizando Google Maps API para obtener la distancia entre 2 códigos postales del Reino Unido.distancia entre 2 códigos postales
var yourPostcode = $("#YourPostcode").val();
var restaurantPostcode = $("#Postcode").val();
var point1 = GetPointFromPostcode(yourPostcode);
var point2 = GetPointFromPostcode(restaurantPostcode);
var distance = point1.distanceFrom(point2, 3959).toFixed(1);
Sin embargo la función GetPoint llama a la API de Google de forma asincrónica y así por la distancia de hora es calculado Punto 1 y 2 no se han establecido (creo que esto es lo que está pasando?)
También puse alerta después de cada declaración para verificar el valor de las variables y al hacer esto obtuve la distancia para ser el valor correcto, esperando a que haga clic en Aceptar debe haberle dado el tiempo suficiente para obtener los resultados? A pesar de que no hace esto más :(
Aquí es la función de punto de conseguir
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;
}
Sé que puedo establecer una devolución de llamada de búsqueda local para ser llamado cuando los resultados vienen de vuelta, pero el problema aquí es hay 2 búsquedas.
lo que quiero es que sólo se llame a la línea de distancia calcular después de que ambas búsquedas han arrojado resultados.
¿sabe cómo podría hacer esto?
Gracias