При поиске в Интернете в течение нескольких часов я обнаружил, что есть несколько способов вычисления расстояния между двумя географическими точками и получения расстояния в разных единицах. Однако я не нашел объяснения тому, что я ищу.
В моем проекте androind у меня есть LocationService, который после onLocationChanged
UPDATE — это таблица пользователей с новой широтой и долготой в строке авторизованных пользователей.
Но сейчас мне нужно, чтобы при ОБНОВЛЕНИИ также выполнялся запрос для пользователей, которые находятся на определенном расстоянии от моего ОБНОВЛЕННОГО местоположения. Очевидно, что я хочу искать / запрашивать пользователей в php, а затем возвращать данные вошедшему в систему пользователю. Код, который у меня сейчас есть, указан ниже.
Как я могу запросить всех пользователей на определенном расстоянии (в метрах) и вернуть их в список в Android?
if (!$con) {
die("Not connected : " . mysql_error());
}
$latitude1 = $_POST["Latitude"];
$longitude1 = $_POST["Longitude"];
$username = $_POST["Username"];
$updatequery = mysqli_prepare($con , "UPDATE users SET Latitude = ?, Longitude = ? WHERE Username = ?");
mysqli_stmt_bind_param($updatequery ,"dds",$latitude1,$longitude1,$username);
mysqli_stmt_execute($updatequery);
mysqli_stmt_close($updatequery);
mysqli_close($con);
Так что теперь все, что вам нужно сделать, это получить свой код калькулятора расстояний, чтобы выяснить, что такое широта и долгота для ящика на указанном расстоянии от интересующего вас пользователя. По сути, вычислите ящик, который находится на расстоянии 500 метров от места, где вы находитесь. заинтересованы в.
$square = distance_to_latlon($curLat, $curLon, 'metres', 500);
Затем вы можете кормить латы и лонги сверху в запрос, подобный этому
$sql = "SELECT * FROM users
WHERE Latitude BETWEEN {$square['lat1']} AND {$square['lat2']}
AND Longitude BETWEEN {$square['long1']} AND {$square['long2']}";
Других решений пока нет …