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

时间:2015-08-05 14:19:01

标签: php android mysql location geopoints

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

在我的androind项目中,我有一个LocationService,在onLocationChanged更新后,用户表在登录用户行中具有新的纬度和经度。

但我现在需要的是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);

1 个答案:

答案 0 :(得分:0)

所以现在你需要做的就是得到你的距离计算器代码来计算一个距离你感兴趣的用户指定距离的盒子的Lat和Long是什么。基本上计算一个外面的盒子距离500米你感兴趣的职位。

$square = distance_to_latlon($curLat, $curLon, 'metres', 500);

然后你可以将上面的lats和longs提供给像这样的查询

$sql = "SELECT * FROM users
        WHERE Latitude BETWEEN {$square['lat1']} AND {$square['lat2']}
          AND Longitude BETWEEN {$square['long1']} AND {$square['long2']}";