Показать сообщение отдельно
  #2 (permalink)  
Старый 12.06.2019, 13:41
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

Допустим, юзер жмякнул карту по координатам {lat, lon}
Ты в цикле перебираешь массив станций метро с их координатами (у тебя ведь есть такой массив, да?), для каждой вычисляешь расстояние от точки, если расстояние меньше некоторого значения, добавляешь в результат.

Для Москвы (широта примерно 60 гр) расстояние вычисляется так:
function distance60(c1, c2) {
    return Math.pow(c1.lat - c2.lat, 2) * 4 + Math.pow(c1.lon - c2.lon, 2);
}


это на самом деле квадрат расстояния, в неких абстрактных единицах, просто для того чтобы сравнить с другими.
Ответить с цитированием