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.