Поиск по периметру по другому периметру

В последнее время мне нужно было искать всех близких мне людей. Моя позиция была отточена по периметру. Например, все люди в 5 км вокруг меня.

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

Вот текущая функция, которая работает в совершенстве:

$lat = $latMe; // My latitude
$lon = $lonMe; // My longitude
$rad = $distancePeople; // My perimeter like 10km

$R = 6371; // Earth rayon

$maxLat = $lat + rad2deg($rad/$R);
$minLat = $lat - rad2deg($rad/$R);
$maxlon = $lon + rad2deg(asin($rad/$R) / cos(deg2rad($lat)));
$minlon = $lon - rad2deg(asin($rad/$R) / cos(deg2rad($lat)));

$sql = "SELECT *, acos(sin(:lat)*sin(radians(lati)) + cos(:lat)*cos(radians(lati))*cos(radians(longi)-:lon)) * :R As D
FROM ( SELECT * FROM people WHERE lati Between :minLat And :maxLat And longi Between :minlon And :maxlon ) As FirstCut
WHERE acos(sin(:lat)*sin(radians(lati)) + cos(:lat)*cos(radians(lati))*cos(radians(longi)-:lon)) * :R < :rad ORDER by date";

$params = [
'lat'    => deg2rad($lat),
'lon'    => deg2rad($lon),
'minLat' => $minLat,
'minlon' => $minlon,
'maxLat' => $maxLat,
'maxlon' => $maxlon,
'rad'    => $rad,
'R'      => $R,
];

Сегодня мне нужно более сложное и я не могу найти … (в PHP)

Мне нужно найти вокруг себя, в той или иной области, людей, которые сами оговаривали сферу «доступности».

Например, я говорю, что могу двигаться со своей позиции и в 10 км вокруг, и люди говорят то же самое, поэтому мне нужно искать вокруг меня в 10 км доступных точках в радиусе 10 км … Да, немного сложно объяснить на письме.

По сути, схематически у одного будет мой круг, полный кругов (у других людей), и необходимо, чтобы я нашел людей, чей круг проходит у меня. (да это материнское объяснение)

Заранее спасибо !

Как это должно работать - в зеленом хорошем разделе отобрано два человека

1

Решение

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

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

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

По вопросам рекламы [email protected]