Não é possível obter dados de geocodificação dos gmaps
Eu tenho um campo oculto dentro de um formulário:
<form>
<input id="distance" name="km" type="hidden">
</form>
E eu só quero preencher esse campo com a distância entre 2 endereços, escolhidos pelo usuário. Depois, basta enviá-lo com o formulário e fazer as coisas do servidor com ele. Aqui eu chamo decalculateDistance
func:
$('#my_form_id').on("submit", function (e) {
calculateDistance();
// other stuff
return true;
});
É assim que estou tentando obter a distância:
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);
});
});
}
Eu vim com a solução superior. Mas eu nem entro nas funções de retorno de chamada. Quando depuro e chego ao retorno de chamada, ele é ignorado. O código parece estar correto (o mesmo que em outras respostas). Onde está o problema?
Eu recebo os valores dos endereços como'Copenhagen, Denmark'
e'Berlin, Germany'
, por exemplo. Tentei fazê-lo como nas sugestões de trechos de código do google, da seguinte maneira:'Copenhagen,+Denmark'
(o espaço vazio é substituído por um+
), mas ainda não funciona.