簡體   English   中英

如何從數據庫中選擇最近的gps坐標?

[英]How to select closest gps coordinate from database?

我有表GPS_tbl在mysql數據庫my_db GPS_tbl有四列1)uid 2)latitude 3)longitude 4)regid 在第2)latitude2)latitude 3)longitude不同的latitudelongitude值已經存儲為浮點數,現在我想要的是當用戶通過POST()比較這些用戶發送的坐標時,用gps coordinates in terms of latitude and longitude發送他/她的gps coordinates in terms of latitude and longitude列中存儲的坐標2)latitude 3)longitude和列中的坐標2)latitude 3)longitude最接近用戶發送坐標的regid選擇對其的regid 請有人幫我在php如何做到這一點。

這是用戶發送他/她的GPS坐標的方式。

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

這是GPS_tbl

+--------------+------------+-------------+-------------+
|     uid      | latitude   | longitude   |   regid     |
+--------------+------------+-------------+-------------+
|      1       |  73.3433   |  18.5223    |APA91W-ClDoS |
|              |            |             |             |
+--- ----------+------------+-------------+-------------+
|      2       |  43.3433   |  24.5523    |BON91W-ClDoS |
|              |            |             |             |
+--- ----------+------------+-------------+-------------+
|      3       |  55.3433   |  37.5323    |WCD71P-ClDoS |
|              |            |             |             |
+--- ----------+------------+-------------+-------------+

我不打算向您解釋如何連接到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。

http://www.geodatasource.com/developers/php請檢查這樣的教程,以計算用戶發送坐標和存儲坐標之間的距離。計算距離后,對結果集進行排序,得到最近的坐標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM