我有一個應用程序在當前/單擊的標記(來自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」聲明爲地圖加載。註釋距離計算會在當前標記的第一次迭代中生成結果。
有什麼想法可能會導致這個問題?
我認爲,幾何庫僅載入,因爲你提出的要求。看到這裏https://developers.google.com/maps/documentation/javascript/libraries。當你調用谷歌地圖js(頁面加載期間)時,你是否包含了幾何球形庫? – DotNetWala 2013-03-22 15:51:41
我沒有......而且這能解決問題!謝謝〜 – 2013-03-22 15:54:23
太棒了!我會發佈一個答案。 – DotNetWala 2013-03-22 15:55:00