Location.distance = function ( loc1, loc2 ) {
return Math.sqrt(
Math.pow( loc2.longitude - loc1.longitude, 2 ) +
Math.pow( loc2.latitude - loc1.latitude, 2 )
);
};
Location.prototype.sortByProximity = function ( arr ) {
var that = this;
arr.sort(function ( a, b ) {
return Location.distance( that, a ) - Location.distance( that, b );
});
};
まず、Location.distance
2 つのインスタンスを取りLocation
、それらの相対距離を表す値を返す静的関数があります。
第 2 に、インスタンスsortByProximity
のメソッドとして呼び出され、最初の引数としてインスタンスLocation
の配列を期待するメソッドがあります。Location
使用法:
baseLocation.sortByProximity( locArr );
// locArr is now sorted in regard to baseLocation
ライブデモ: http://jsfiddle.net/hGp66/