php - 如何根据 GPS 位置的接近程度过滤数据库结果?

标签 php android mysql gps location

我通过 Android 应用程序获取 GPS 位置,然后询问服务器数据库中的哪些记录位于它附近。

我怎样才能做到这一点?

假设这些是坐标:

39.017411, -97.251117

如何要求 PHP 中的数据库只提供包含这些附近坐标的结果?

最佳答案

您可以执行如下所述的操作,考虑到表的字段名称是 lat 表示纬度,lng 表示经度

$lat = 39.017411;
$lng = -97.251117;

    $result=mysql_query("SELECT tbl.id, tbl.lat, tbl.lng, 111.045 * DEGREES(ACOS(COS(RADIANS($lat))
 * COS(RADIANS(lat))
 * COS(RADIANS(lng) - RADIANS($lng))
 + SIN(RADIANS($lat))
 * SIN(RADIANS(lat))))
 AS distance_in_km
FROM table_name as tbl
ORDER BY distance_in_km ASC
LIMIT 0,1");
    if(mysql_num_rows($result)>0)
    {
        $row=mysql_fetch_assoc($result));
        echo $row[lat].";".$row[lng];
    }

关于php - 如何根据 GPS 位置的接近程度过滤数据库结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39331453/

相关文章:

php - MySQL降序问题

java - OffsetDateTime.now() 需要 API 26

android - Firebase 存储的上传/下载速度非常慢

php脚本在160个字符后扣除1个学分

javascript - 使用 php curl 函数处理弹出登录窗口(netgear 路由器)

php - MySQL数据库表命名约定

php - MYSQL 同时比较时间和星期几

android - Gstreamer、Raspberry Pi 和 Android。如何获取流媒体视频?

PHP - 在 MySQL 表中存储段落

应用程序用户/安全的 MySQL 基本权限