Проблемы с асинхронным geocoder.geocode - PullRequest
1 голос
/ 28 июня 2010

У меня проблемы с получением адреса. Однако эта проблема возникает только при первом запуске, т. Е. Необходимо, чтобы каждый раз, когда я выполняю запрос, я дважды щелкал, чтобы получить только вторые значения.

Я считаю, что проблема связана с асинхронным методом. Но я не могу решить проблему. Некоторые из его друзей могли бы помочь мне.

$('#btnTracar').click(function(){
if (geocoder){
    geocoder.geocode({ 'address': document.getElementById('txtStart').value }, function(results, status){
        if (status == google.maps.GeocoderStatus.OK) {
            mapStart = results[0].geometry.location;
        } else { alert("Não foi possível carregar a localização. \nDescrição do Erro: " + status); }
    });

    geocoder.geocode({ 'address': document.getElementById('txtEnd').value }, function(results, status){
        if (status == google.maps.GeocoderStatus.OK) {
            mapEnd = results[0].geometry.location;
        } else { alert("Não foi possível carregar a localização. \nDescrição do Erro: " + status); }
    });

    calcularRota();
}
});

1 Ответ

1 голос
/ 28 июня 2010

Решение:

        $('#btnTracar').click(function(){
            if ($.trim($("#txtStart").val()) == ""){
                alert("Favor preencher o campo de Origem Corretamente.");
                return;
            }

            if ($.trim($("#txtEnd").val()) == ""){
                alert("Favor preencher o campo de Origem Corretamente.");
                return;
            }

            if (geocoder){
                geocoder.geocode({ 'address': document.getElementById('txtStart').value }, function(results, status){
                    if (status == google.maps.GeocoderStatus.OK){
                        mapStart = results[0].geometry.location;
                        geocoder.geocode({ 'address': document.getElementById('txtEnd').value }, function(results, status){
                            if (status == google.maps.GeocoderStatus.OK){
                                mapEnd = results[0].geometry.location;
                                calcularRota();
                            }
                        });
                    }
                });
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...