我在mysql数据库GPS_tbl
中有表my_db
。在GPS_tbl
中有四列1)uid
2)latitude
3)longitude
4)regid
。在2)latitude
3)longitude
列中,latitude
和longitude
的不同值已经存储为浮点数,现在我想要的是用户发送他/她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);
答案 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请检查这样的教程,以计算用户发送坐标与存储坐标之间的距离。计算距离后,对结果集进行排序,得到最近的坐标。