2015-06-23 2 views
1

У меня есть список адресов с широтой и долготой, я хочу отсортировать их по ближайшему расстоянию до одного адреса. Может ли кто-нибудь помочь?Сортировка списка адресов по ближайшему расстоянию по широте и долготе

+1

так что есть две части здесь, во-первых, чтобы получить расстояние для каждого адреса из вашей «один адрес». Затем сортировать их. Какая часть, в частности, вам нужна помощь? Сколько адресов в вашем списке? Как выглядит ваш код до сих пор? – duncan

+0

Я хочу отобразить список ресторанов в ближайшем будущем. Для сортировки может быть 10 или более адресов. вот ссылка, в которой я хочу использовать: [Best of the Brunch] (http://bestofthebrunch.co.uk/restaurants/swan-at-the-globe/). Я следовал за документом из http://mobiforge.com/design-development/geo-sorting-using-device-geolocation-to-sort-distance, но не смог добиться результата. – PlanetHackers

+0

Как выглядит ваш код до сих пор? – duncan

ответ

4

скажем ваши адреса выглядит следующим образом

{ 
    restaurant: 'Moe\'s la Patate' 
    longitude: 12345, 
    latitude: -1234 
} 

и помещаются в массив с именем адреса

var addresses = [{ 
    restaurant: 'Moe\'s la Patate' 
    longitude: 12345, 
    latitude: -1234 
},{ 
    restaurant: 'Mc Donalds' 
    longitude: -531, 
    latitude: 235 
}// ... 
]; 

и что ваша позиция в том же формате (я буду использовать позиция переменная)

Вы можете сделать расчет √ (a^2 + b^2)

var position = { 
    longitude: 2231, 
    latitude: -4211 
} 
var addressesByDistance = addresses.map(function(data){ 
    var distX = position.longitude - data.longitude; 
    var distY = position.latitude - data.latitude; 
    var distance = Math.sqrt(Math.pow(distX, 2) + Math.pow(distY, 2)); 
    return distance; 
}).sort(); 

Это не принимает во внимание раунд до земли, но имея только 10 ресторанов, я полагаю, все они находятся в одном городе?

В любом случае, надеюсь, что это помогает

+0

Спасибо за помощь. Я использовал вашу функцию для вычисления расстояния и добавил ее к каждому элементу в качестве атрибута, затем применил сортировку вставки для сортировки по атрибуту расстояния. – PlanetHackers

Смежные вопросы