Выборка данных из внешней базы данных на основе местоположения

При поиске в Интернете в течение нескольких часов я обнаружил, что есть несколько способов вычисления расстояния между двумя географическими точками и получения расстояния в разных единицах. Однако я не нашел объяснения тому, что я ищу.

В моем проекте 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);

-2

Решение

Так что теперь все, что вам нужно сделать, это получить свой код калькулятора расстояний, чтобы выяснить, что такое широта и долгота для ящика на указанном расстоянии от интересующего вас пользователя. По сути, вычислите ящик, который находится на расстоянии 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']}";
0

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

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

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