根据位置从外部数据库中获取数据

Fetching Data From A External Database Based On Location

在网上搜索了几个小时后,我发现有几种方法可以计算 2 个地理点之间的距离,并以不同的单位获取距离。但是我并没有真正找到我正在寻找的解释。

在我的 android 项目中,我有一个 LocationService,它在 onLocationChanged 更新用户 table 时在登录用户行中使用新的纬度和经度。

但我现在需要的是在更新时也查询距离我的更新位置一定距离内的用户。显然我想search/query为php中的用户,然后return数据给登录用户。下面列出了我目前拥有的代码。

如何查询特定距离(以米为单位)内的所有用户,并将他们 return 放入 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']}";