【问题标题】:Fetching Data From A External Database Based On Location根据位置从外部数据库中获取数据
【发布时间】:2015-08-05 14:19:00
【问题描述】:

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

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

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

【问题讨论】:

  • 嗯,最好的开始方法是在 phpMyAdmin 或类似工具中编写查询代码。你用测试数据玩了一会儿,直到你得到你想要的答案。然后将该查询放入一些 PHP 代码并运行它。如果它没有像预期的那样工作,你来这里寻求帮助。但是,您不会发布规范并期望人们为您提供免费代码
  • 我不是免费索要代码。我需要有关如何在数据库中搜索具有相似纬度和经度的其他用户的指示。因为我确实知道如何以英里、公里、英尺、米等其他单位计算用户之间的距离。我需要一种方法来使用该距离从用户那里收集其他数据。示例:我在这里,马克在500米外,他的位置已经改变并且已经发送到db,查询他的数据,与我的比较,如果是500或小于我的,得到他的名字。

标签: php android mysql location geopoints


【解决方案1】:

因此,现在您需要做的就是获取距离计算器代码,以计算距离您感兴趣的用户指定距离的盒子的纬度和经度。基本上计算一个距离外面 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']}";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多