Выбрать координаты близко друг к другу

У меня около 15000 координат. Я хочу рассчитать, какие из них находятся на расстоянии 100 метров друг от друга. Сейчас я использую код ниже для расчета расстояния. Это занимает много времени, когда у меня столько координат.

Есть ли способ повысить производительность? Возможно, отфильтровав координаты, которые находятся на расстоянии нескольких сотен метров, а затем более точно рассчитайте расстояние с помощью функции ниже.

  $earthRadius = 6371000;

// convert from degrees to radians
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);

$lonDelta = $lonTo - $lonFrom;
$a = pow(cos($latTo) * sin($lonDelta), 2) + pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2);
$b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta);

$angle = atan2(sqrt($a), $b);

return $angle * $earthRadius;

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector