2013-03-22 34 views
1

我有一個應用程序在當前/單擊的標記(來自mapMarkers [])周圍添加50mi半徑。我知道所選標記的索引號及其LatLng位置爲「myPosition」,其他標記的LatLng位置爲mapMarkers [i] .point。標記之間的距離 - 第一次點擊沒有結果

在地圖上繪製圓之後,我調用以下簡單函數來遍歷所有mapMarkers []以計算距當前標記的距離,然後計算實際落在50mi半徑範圍內的標記數。很簡單,對吧?

問題:以下例程在第一次迭代(即第一次單擊)時不會爲當前標記生成任何結果。但DOES會在當前標記的第二次和隨後的點擊中產生預期結果。

function inCircle() { 
    var j = 0; 
    var myDistance = 0; 
    for (var i = 0; i < mapMarkers.length; i++) { 
     myDistance = google.maps.geometry.spherical.computeDistanceBetween(myPosition, mapMarkers[i].point); 
     myDistance = parseInt(myDistance/1609.34) //meters to miles 
     if (myDistance <= 50) { 
      j = j + 1; 
      //Do more stuff... 
     } 
    } 
    alert("Markers inside circle: " + j); 
} 

我在將圓圈綁定到所選標記後立即調用此函數。 「myPosition」聲明爲地圖加載。註釋距離計算會在當前標記的第一次迭代中生成結果。

有什麼想法可能會導致這個問題?

+0

我認爲,幾何庫僅載入,因爲你提出的要求。看到這裏https://developers.google.com/maps/documentation/javascript/libraries。當你調用谷歌地圖js(頁面加載期間)時,你是否包含了幾何球形庫? – DotNetWala 2013-03-22 15:51:41

+0

我沒有......而且這能解決問題!謝謝〜 – 2013-03-22 15:54:23

+0

太棒了!我會發佈一個答案。 – DotNetWala 2013-03-22 15:55:00

回答

1

WRT我上面的評論:我認爲,幾何圖書館只是加載,因爲你提出了一個請求。請參閱developers.google.com/maps/documentation/javascript/libraries。當您調用Google地圖js時(包括頁面加載),請添加幾何球形庫。

如:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=drawing,geometry,weather"></script> 
+1

再次感謝! - 馬克 – 2013-03-22 15:57:40