Я использую API Карт Google, чтобы получить расстояние между 2 британскими почтовыми индексами.расстояние от 2 почтовых индексов
var yourPostcode = $("#YourPostcode").val();
var restaurantPostcode = $("#Postcode").val();
var point1 = GetPointFromPostcode(yourPostcode);
var point2 = GetPointFromPostcode(restaurantPostcode);
var distance = point1.distanceFrom(point2, 3959).toFixed(1);
Однако функция GETPOINT вызывает Google API асинхронно и поэтому к тому времени, расстояние рассчитывается point1 и 2 не были установлены (я считаю, что это то, что происходит?)
Я также положить уведомления после каждого чтобы проверить значение переменных и сделать это, я получил расстояние, чтобы быть правильным значением, ожидая, что я нажму ОК, должно быть, дал ему достаточно времени, чтобы получить результаты? Хотя он не делает этого больше :(
Вот функция точки прибудете
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;
}
Я знаю, что я могу установить обратный вызов на локальном поиске будет вызвана, когда результаты возвращаются, но проблема здесь есть 2 запросы.
то, что я хочу, чтобы вызывать только рассчитать расстояние линии после того, как поиски возвращаются результаты.
вы знаете, как я мог бы сделать это делать?
Thanks