2017-01-06 58 views
-1

我們正在使用Google地圖API顯示我們網站上所有診所的列表,並且正在編寫「顯示我附近的所有診所」功能。一切工作正常,我使用幾何庫中的Google Maps Circle調用在地圖上繪製了一個圓。Google Maps API(3)computeDistanceBetween返回NaN

我們希望返回所有屬於該圈子的診所的列表。我們的診所通過來自單獨的.js文件的$.get();調用加載。我一直在用google.maps.geometry.spherical.computeDistanceBetween(pointA, pointB);函數來測試每個診所是否落在圓圈內,其中pointB是圓圈的中心,pointA是診所的位置 - 兩者都是通過new google.maps.LatLng(clinic.lat, clinic.long));定義的。

ComputeDistanceBetween不斷返回NaN爲每個診所。由於一些敏感性問題,我無法分享我正在使用的確切代碼,但我modified a Google Maps API fiddle for marker clustering HERE,因爲我們也使用標記聚類和緯度/經度加載類似於我們的。

我已經檢查過this post,它沒有爲我工作。

回答

2

您的代碼中存在拼寫錯誤。 locations[x].long不存在,那應該是locations[x].lng

所以你的功能應該是:

var mylocation = new google.maps.LatLng(locations[0].lat, locations[0].lng); 
    console.log(mylocation); 
    var marker_lat_lng = new google.maps.LatLng(locations[2].lat, locations[2].lng); 
    console.log(marker_lat_lng); 
    var distance_from_location = google.maps.geometry.spherical.computeDistanceBetween(mylocation, marker_lat_lng); 
    document.getElementById('feedback').innerHTML = distance_from_location; 

proof of concept fiddle

+0

哦G-d d ---它!總是很簡單。我已經完成了這100次,我顯然每次都錯過了。讓我在我的開發代碼中試試看看它是如何擺脫的。 –

+0

就是這樣,但是在dev代碼的情況下,我有'long'而不是'lng'。 Oy公司。謝謝! –