@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'
      }
     //....
    ];


Буду благодарен за любую подсказку.
  • Вопрос задан
  • 215 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const closest = arr.reduce((closest, n) => {
  const distance = sphericalDistance(
    { lat, lon },
    { lat: n.latitude, lon: n.longtitude }
  );

  return distance < closest.distance
    ? { item: n, distance }
    : closest;
}, {
  item: null,
  distance: Infinity,
}).item;


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

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

Войти через центр авторизации
Похожие вопросы