PHP 附近的人

2022-06-06 06:27:09 字數 1017 閱讀 3222

思路:

首先,我們知道自己的經緯度,知道自己要搜尋的範圍(半徑),我們就可以得到乙個已自己為中心的範圍圈。然後計算出範圍內的經緯度,也就是對於的附近的人。

第一步:我們先宣告乙個函式,用作計算經緯度的範圍:

/*

* * 根據經緯度和半徑計算出範圍

* @param string $lat 緯度

* @param string $lng 經度

* @param float $radius 半徑 單位公尺

* @return array 範圍陣列 */

function calcscope($lat, $lng, $radius

)

第二步:第一步中返回的陣列已經包含了 最大最小的經緯度, 那我們就以此為條件 ,去資料庫進行查詢。

提供sql語句,根據自己的框架進行修改

'select `字段` from `表名` where `latitude` < '.$scope['maxlat'].' and `latitude` > '.$scope['minlat'].' and `longitude` < '.$scope['maxlng'].' and `longitude` > '.$scope['minlng'];

第三步:獲取到附近的人的座標以後,我們還需要知道自己距離附近的人的距離是多少

/*

* * 獲取兩個經緯度之間的距離

* @param string $lat1 緯一

* @param string $lng1 經一

* @param string $lat2 緯二

* @param string $lng2 經二

* @return float 返回兩點之間的距離 */

function calcdistance($lat1, $lng1, $lat2, $lng2

)

到此,乙個簡單的附近的人的 程式就算是寫好了。可以根據自己的專案需求進行調整,如,執行效率,執行方式等等。

PHP 技巧 附近的人功能實現

授權獲取使用者的經緯度並存入資料庫 lng 字段 lat 字段 1.原生查詢 select convert 2 6378.137 asin sqrt pow sin 3.1415926535898 get lat lat 360 2 cos 3.1415926535898 get lat 180 c...

搜尋附近的人

地球半徑,單位公尺 private static double earth radius 6378137 根據提供的經度和緯度 以及半徑,取得此半徑內的最大最小經緯度 緯度 經度 半徑 公尺 public static double getaround double lat,double lon,i...

PHP查詢附近的人及其距離的實現方法

distance 1 範圍 單位千公尺 lat 113.873643 lng 22.573969 define earth radius 6371 地球半徑,平均半徑為6371km dlng 2 asin sin qioutilidistance 2 earth radius cos deg2rad...