No se pueden obtener datos de geocodificación de gmaps

Tengo un campo oculto dentro de un formulario:

<form> 
     <input id="distance" name="km" type="hidden">
</form>

Y solo quiero llenar este campo con la distancia entre 2 direcciones, elegidas por el usuario. Luego, simplemente lo envío con el formulario y hago las cosas del servidor con él. Aquí llamo elcalculateDistance func:

$('#my_form_id').on("submit", function (e) {
    calculateDistance();
    // other stuff
    return true;
});

Así es como estoy tratando de obtener la distancia:

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);
    });
});
}

Se me ocurrió la solución superior. Pero ni siquiera entro en las funciones de devolución de llamada. Cuando depuro y llego a la devolución de llamada, simplemente se omite. El código parece ser correcto (igual que en otras respuestas). ¿Dónde está el problema?

Recibo los valores de las direcciones como'Copenhagen, Denmark' y'Berlin, Germany', por ejemplo. Intenté hacerlo como en las sugerencias de fragmentos de código de Google, de la siguiente manera:'Copenhagen,+Denmark' (el espacio vacío se reemplaza con un+), pero aún no funciona.

Respuestas a la pregunta(1)

Su respuesta a la pregunta