2013-11-21 103 views
0

使用的GoogleMap v3可反地理編碼samplesource使此源GoogleMap的v3可反向地理編碼

var map; 
     var geocoder; 
     var marker; 
     function initialize() { 
      geocoder = new google.maps.Geocoder(); 
      var mapOptions = { 
       zoom : 14, 
       center : new google.maps.LatLng(30, 30) 
      }; 
      map = new google.maps.Map(document.getElementById('map-canvas'), 
        mapOptions); 
     } 

     function codeLatLng() { 
       var latlng = new google.maps.LatLng(30, 30); 
       alert("call codeLatLng() 1"); 
       geocoder.geocode({'latLng': latlng}, function(results, status) { 
        alert("call codeLatLng() 2"); 
       if (status == google.maps.GeocoderStatus.OK) { 
        if (results[1]) { 
        map.setZoom(11); 
        marker = new google.maps.Marker({ 
         position: latlng, 
         map: map 
        }); 
        infowindow.setContent(results[1].formatted_address); 
        infowindow.open(map, marker); 
        } else { 
        alert('No results found'); 
        } 
       } else { 
        alert('Geocoder failed due to: ' + status); 
       } 
       }); 
      } 


     google.maps.event.addDomListener(window, 'load', initialize); 
     codeLatLng(); 

我調用函數codeLatLng();在代碼最後一行

這麼叫功能codeLatLng()和警報消息「稱codeLatLng()1

,但不叫 「呼codeLatLng()2」 的代碼不起作用

什麼是錯誤的,我的代碼?

+1

任何消息:

這將更好地工作? –

+0

沒有控制檯乾淨沒有錯誤 – user2637015

+0

我想嘗試從數據處理功能中取出一些代碼,只留下警報。另外,我會在數據處理函數之後放置另一個警報,但仍然在codeLatLng()函數中。 – Seano666

回答

2

什麼是錯在我的代碼?

你是在你的地圖執行codeLatLng和地理編碼變量是初始化(在DOM完成加載時初始化運行,codeLatLng立即運行)。在錯誤控制檯

var map; 
    var geocoder; 
    var marker; 
    function initialize() { 
     geocoder = new google.maps.Geocoder(); 
     var mapOptions = { 
      zoom : 14, 
      center : new google.maps.LatLng(30, 30) 
     }; 
     map = new google.maps.Map(document.getElementById('map-canvas'), 
       mapOptions); 

     // map and geocoder initialized 
     codeLatLng(); 
    } 

    function codeLatLng() { 
      var latlng = new google.maps.LatLng(30, 30); 
      alert("call codeLatLng() 1"); 
      geocoder.geocode({'latLng': latlng}, function(results, status) { 
       alert("call codeLatLng() 2"); 
      if (status == google.maps.GeocoderStatus.OK) { 
       if (results[1]) { 
       map.setZoom(11); 
       marker = new google.maps.Marker({ 
        position: latlng, 
        map: map 
       }); 
       infowindow.setContent(results[1].formatted_address); 
       infowindow.open(map, marker); 
       } else { 
       alert('No results found'); 
       } 
      } else { 
       alert('Geocoder failed due to: ' + status); 
      } 
      }); 
     } 


    google.maps.event.addDomListener(window, 'load', initialize); 
+0

感謝我認爲geocoder初始google.maps.event.addDomListener(窗口,'加載',初始化); – user2637015

+0

地址解析器在onload函數中進行初始化。但是,直到頁面加載後,codeLatLng運行在原始代碼之後纔會運行。 – geocodezip