标记之间的距离 - 第一次点击没有结果

时间:2013-03-22 15:41:36

标签: google-maps google-maps-api-3

我有一个应用程序,在当前/点击的标记周围添加50mi半径(来自mapMarkers [])。我知道所选标记的索引号及其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”被声明为地图加载。注释掉距离计算会在当前标记的第一次迭代中产生结果。

有什么想法可能导致这个问题吗?

1 个答案:

答案 0 :(得分:1)

WRT我上面的评论:我认为,几何图书馆只是因为你提出了请求而加载。请参阅developers.google.com/maps/documentation/javascript/libraries。在调用google maps js时(在页面加载期间),请包含几何球形库。

例如:

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