我通过 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/