如何通过gps位置的接近度过滤数据库结果?

时间:2016-09-05 13:15:58

标签: php android mysql gps location

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

我该如何做到这一点?

让我们说这些是坐标:

CONSTRAINT FK_ADDRESS_COMPANY FOREIGN KEY (COMPANY_ID) REFERENCES COMPANY(ID)

我如何要求PHP中的数据库仅向我提供包含那些附近坐标的结果?

1 个答案:

答案 0 :(得分:1)

您可以执行如下所述的操作,考虑到您的表格的字段名称为纬度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];
    }