2011-06-30 54 views
0

我嘗試使用谷歌地圖API來獲取兩個點之間的距離,問題越來越distanceFrom在谷歌地圖API

function load_points(){ 
     var geocoder = new GClientGeocoder(); 

     var firstZip, secondZip; 
     geocoder.getLatLng(document.getElementById("firstZip").value, function(point) { 
     if (!point) { 
      alert("This point could not be geocoded"); 
      } else { 
      firstZip = point; 
      var marker = new GMarker(point); 
      map.addOverlay(marker); 
      } 
     }); 

     geocoder.getLatLng(document.getElementById("secondZip").value, function(point) { 
     if (!point) { 
      alert("This point could not be geocoded"); 
      } else { 
      secondZip = point; 
      var marker = new GMarker(point);    
      map.addOverlay(marker); 
      } 
     }); 

     alert(new GLatLng(firstZip).distanceFrom(new GLatLng(secondZip))); 

    } 

的問題是,當我嘗試它似乎首先要執行的警報,之後的地理編碼部分,當然distanceFrom方法失敗,因爲firstZip和secondZip的值是未定義的。有人知道如何解決它?

回答

1

getLatLng函數是異步的,因此在嘗試使用firstZipsecondZip變量之前,您需要等待兩次調用才能成功返回。

+0

謝謝,但是怎麼做呢,怎麼知道這個respons被返回? – Maki