Я хочу, чтобы пользователи на моем сайте могли искать других пользователей на определенном расстоянии. например, «найти всех пользователей в пределах [5] миль». У меня есть некоторый код, который делает это «по прямой линии», но я хочу иметь возможность найти реальное расстояние, включая дороги. Я знаю, что мне нужен сторонний инструмент для этого, но я не уверен, что использовать. Есть ли в Google Maps API эта функция? Мой код на данный момент:
$results = $members->prepare("SELECT users.fname, users.lname, activate.profession, activate.town, ROUND((3958.75 * ACOS(SIN(? / 57.2958)*SIN(uk_postcodes.latitude / 57.2958)+COS(? / 57.2958)*COS(uk_postcodes.latitude / 57.2958)*COS(uk_postcodes.longitude / 57.2958 - ? / 57.2958))), 1) as distance FROM uk_postcodes JOIN activate on activate.outward = uk_postcodes.postcode and activate.userid != ? JOIN users on users.user_id = activate.userid WHERE (3958.75 * ACOS(SIN(? / 57.2958)*SIN(uk_postcodes.latitude / 57.2958)+COS(? / 57.2958)*COS(uk_postcodes.latitude / 57.2958)*COS(uk_postcodes.longitude / 57.2958 - ? / 57.2958))) <= ?");
$lat = $_POST['latitude'];
$long = $_POST['longitude'];
$results->bind_param('ssssssss', $lat, $lat, $long, $_SESSION['token'], $lat, $lat, $long, $_POST['distance']);
$results->execute();
Любая помощь приветствуется, спасибо.