2011-08-25 118 views
0

我有一個谷歌地圖,我得到所有關閉地點(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

也許嘗試某事像這樣:

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