Не удается получить данные геокодирования gmaps
У меня есть скрытое поле внутри формы:
<form>
<input id="distance" name="km" type="hidden">
</form>
И я просто хочу заполнить это поле расстоянием между двумя адресами, выбранными пользователем. Затем я просто отправляю его вместе с формой и делаю с ним все, что нужно серверу. Здесь я называюcalculateDistance
FUNC:
$('#my_form_id').on("submit", function (e) {
calculateDistance();
// other stuff
return true;
});
Вот как я пытаюсь получить расстояние:
function calculateDistance() {
var startPoint = $('#main_from_route_input').val();
var endPoint = $('#main_to_route_input').val();
var geocoderStart = new google.maps.Geocoder();
var geocoderEnd = new google.maps.Geocoder();
var coordsStart, coordsEnd;
geocoderStart.geocode({'address': startPoint}, function (response, status) {
if(status != google.maps.GeocoderStatus.OK){
alert('Geocode of first address failed: ' + status);
}
coordsStart = response[0].geometry.location;
geocoderEnd.geocode({'address': endPoint}, function (response, status) {
if(status != google.maps.GeocoderStatus.OK){
alert('Geocode of second address failed: ' + status);
}
coordsEnd = response[0].geometry.location;
var distance = (google.maps.geometry.spherical.computeDistanceBetween(coordsStart, coordsEnd) / 1000).toFixed(2);
$('#distance').val(distance);
});
});
}
Я придумал верхнее решение. Но я даже не вхожу в функции обратного вызова. Когда я отлаживаюсь и получаю обратный вызов, он просто пропускается. Код кажется правильным (так же, как и в других ответах). В чем проблема?
Я получаю значения адресов как'Copenhagen, Denmark'
а также'Berlin, Germany'
, например. Я попытался сделать это, как в предложениях фрагмента кода Google, следующим образом:'Copenhagen,+Denmark'
(пустое место заменяется+
), но не работает до сих пор.