如何从数据库中选择最近的gps坐标?

时间:2014-05-09 16:13:44

标签: php mysql gps coordinates

我在mysql数据库GPS_tbl中有表my_db。在GPS_tbl中有四列1)uid 2)latitude 3)longitude 4)regid。在2)latitude 3)longitude列中,latitudelongitude的不同值已经存储为浮点数,现在我想要的是用户发送他/她gps coordinates in terms of latitude and longitude到{ {1}}将这些用户发送的坐标与列POST() 2)latitude中已存储的坐标以及最接近用户发送坐标的3)longitude 2)latitude列中的坐标进行比较,选择{ {1}}反对它。请有人帮我知道如何在3)longitude中执行此操作。

这是用户发送他/她的GPS坐标的方式。

regid

这是php

    $lati = $_POST['lati'];
    $longi = $_POST['longi'];
    $float_value_of_lati = floatval($lati);
    $float_value_of_longi = floatval($longi);

2 个答案:

答案 0 :(得分:1)

我不打算向您解释如何连接到MySQL服务器,获取数据库实例以及运行SQL查询。有很多教程。我打算帮你查询。为此,我们将使用毕达哥拉斯定理。这不是最好的方法,因为地球不平坦,但我认为它会起作用(不是在我们从-180º到180º的太平洋中部)

    "SELECT uid,regid, sqrt(latitude-".$users_latitude.")+sqrt(longitude-".user_longitude.") AS SQRT_DIST 
FROM GPS_tbl ORDER BY SQRT_DIST LIMIT 1;

这就是你得到最接近点的方式。

请注意,返回的距离是距离^ 2。

答案 1 :(得分:0)

http://www.geodatasource.com/developers/php请检查这样的教程,以计算用户发送坐标与存储坐标之间的距离。计算距离后,对结果集进行排序,得到最近的坐标。