我有谷歌地图,我得到的所有标记都接近一个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 ??
}
}
有你的想法吗?
答案 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);