Не удается получить данные геокодирования 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' (пустое место заменяется+), но не работает до сих пор.

Ответы на вопрос(1)

Ваш ответ на вопрос