0

Привет, умнее меня. ;) Я действительно не могу понять это странное поведение моего кода.Изменение переменной состояния JS в API GoogleMaps API не работает

Что нужно сделать, так это выполнить функцию fixedlocation() при нажатии кнопки, чтобы проверить, можно ли найти действительный адрес, а затем выполнить некоторый код.

Чтобы проверить, правильно ли он работает, у меня есть предупреждение в коде, которое дает мне состояние логического значения, которое должно быть изменено. Теперь я действительно не понимаю, почему, но он работает только со второго нажатия кнопки. Это означает, что даже если действительный адрес можно найти, первый раз, когда появится предупреждение с ложным ...

Сначала я подумал, что это должно иметь какое-то отношение к тому, где я определил переменную, но потом она не смогла работать во второй раз?

Любая помощь или указатель в правильном направлении были бы высоко оценены.

var geoinfobool=new Boolean(); 
function fixedlocation() 
{  

    var addresscoordinates = new google.maps.LatLng(document.getElementById('addresslat').value,document.getElementById('addresslng').value) 
    geocoder.geocode({'latLng': addresscoordinates}, function(results, status) 
    { 

     if (status == google.maps.GeocoderStatus.OK) 
     { 
      geoinfoavailable(true); 

      //do other stuff in here// 

     } 
     else 
     { 
      geoinfoavailable(false); 

      //do other stuff in here// 

     } 
    }); 

    alert(geoinfobool); 
} 

function geoinfoavailable(state) 

{ 
    geoinfobool = state; 
} 

ответ

0

В вашем коде геокодер не определен.

Попробуйте

var addresscoordinates = new google.maps.LatLng(document.getElementById('addresslat').value,document.getElementById('addresslng').value); 
var geocoder = new google.maps.Geocoder(); 
geocoder.geocode({'latLng': addresscoordinates}, function(results, status) 
{ 
+0

Спасибо за вход Дэвид, я на самом деле имеют геокодер определенный, не отправлял его правильно извините. Я более смущен, чем когда-либо, когда узнал, что получаю правильное предупреждение, если включить в код геокодера предупреждение. Если предупреждение (geoinfobool); следует сразу после закрытия скобок другого, затем он внезапно работает ... На самом деле не знаю, почему это будет так, хотя ... – MikeAndIke