我有一个应用程序,可以在当前/单击的标记周围添加 50 英里半径(来自 mapMarkers [])。我知道所选标记的索引号及其 LatLng 位置为“myPosition”,其他标记的 LatLng 位置为 mapMarkers[i].point。
在地图上绘制完圆圈后,我调用以下简单函数来遍历所有 mapMarkers[] 以计算与当前标记的距离,然后计算有多少标记实际落在 50mi 半径内。很简单,对吧?
问题:以下例程在当前标记的第一次迭代(即第一次单击)时不会产生任何结果。但是会在第二次和后续点击当前标记时产生预期的结果。
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”在地图加载时声明。注释掉距离计算会在当前标记的第一次迭代中产生结果。
有什么想法可能导致这个问题吗?