@justedoit

Как найти самую ближайшую точку из массива?

Доброго времени суток.

Есть координаты клиента:
// Пример
const lat = 56.4063789;
const lon = 38.7151217;


Есть массив со всеми точками, внутри которого нужно найти самый ближний к клиенту:
[
      {
        address: 'ул Тестовская, 1',
        city: 'Москва',
        id: 14766,
        latitude: '55.7479019',
        longitude: '37.532949'
      },
      {
        address: 'ул 1-я Тверская-Ямская, 2',
        city: 'Москва',
        id: 12863,
        latitude: '55.770302',
        longitude: '37.597099'
      }
     //....
    ];


Буду благодарен за любую подсказку.
  • Вопрос задан
  • 253 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const point = { latitude: lat, longtitude: lon };
const closest = arr.reduce((closest, n) => {
  const d = sphericalDistance(point, n);
  return d < closest[1] ? [ n, d ] : closest;
}, [ null, Infinity ])[0];


function sphericalDistance(p1, p2) {
  // https://en.wikipedia.org/wiki/Great-circle_distance
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект