排序计算区域

时间:2011-08-25 07:41:43

标签: javascript google-maps-api-3

我有谷歌地图,我得到的所有标记都接近一个locaton(lat,lng)。 这一点没问题。

现在我想对这些标记进行排序,就像在SQL中我们可以做一个“按距离ASC排序”。例如。

我在javascript中看到有一个方法调用sort(),它可以对某些数字进行排序,例如asc或desc。

标记有一些信息:名称,标题,性别,城市,邮编......

我的代码:

 var nbMeters = 50000;  

for (var i = 0; i < markers.length; i++) {
        var myMarker = markers[i];

         coord2 = new google.maps.LatLng(myMarker.lat, myMarker.lng);
        var distance = google.maps.geometry.spherical.computeDistanceBetween(coords, coords2);


  if(distance <= nbMeters) {   

     alert(myMarker.name);
    //OK my marker is close the variable coords, good !
    //But how to know which marker is the closer, which is the second, the third ... and the less closer ??

  }

}

有你的想法吗?

1 个答案:

答案 0 :(得分:0)

也许试试这样:

for (var i = 0; i < markers.length; i++) {
    var myMarker = markers[i];

    coord2 = new google.maps.LatLng(myMarker.lat, myMarker.lng);
    var distance = google.maps.geometry.spherical.computeDistanceBetween(coords, coords2);
    markers[i].distance = distance;
}

function sortMarkers(marker1, marker2) {
    return marker1.distance - marker2.distance;
}

markers.sort(sortMarkers);

未经测试且基于http://www.w3schools.com/jsref/jsref_sort.asp