我有一个应用程序在当前/单击的标记(来自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