-2

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

在我的 android 项目中,我有一个 LocationService,它在onLocationChangedUPDATE 时用户表在登录的用户行中具有新的纬度和经度。

但是我现在需要的是在 UPDATE 时也查询与我的 UPDATED 位置有一定距离的用户。显然我想在 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);
4

1 回答 1

0

所以现在你需要做的就是让你的距离计算器代码计算出距离你感兴趣的用户指定距离的盒子的纬度和经度。基本上计算一个距离你位置 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']}";
于 2015-08-05T14:44:05.393 回答