通過經緯度檢索周邊範圍地區

2022-06-30 20:33:12 字數 1453 閱讀 3689

2.通過使用者當前位置獲取範圍1km的經緯度,如下圖,

上面的4個點的經緯度獲取**

/*** 計算某個經緯度的周圍某段距離的正方形的四個點

** @param

* radius 地球半徑 平均6371km

* @param

* lng float 經度

* @param

* lat float 緯度

* @param

* distance float 該點所在圓的半徑,該圓與此正方形內切,預設值為1千公尺

* @return array 正方形的四個點的經緯度座標

*/public function returnsquarepoint($lng, $lat, $distance = 1, $radius = 6371)

3.通過獲取4個點,從而獲取到經度的最大值與最小值已經緯度的最大最小值,通過資料庫查詢獲取到在此範圍內的資料

$order = 'latitude asc,longitude asc';

//獲取該使用者所在的地區附近的4個點

$start = $this->returnsquarepoint('121.42815983368686','31.258080483782756',1);

//緯度

$where['latitude']=array('between',array($start['left-bottom']['lat'],$start['left-top']['lat']));

//經度

$where['longitude']=array('between',array($start['left-bottom']['lng'],$start['right-bottom']['lng']));

$list = m('residence')->where($where)->order($order)->select();

以上**為獲取附近1km距離的資料

4.通過兩點的距離獲取兩點的直線距離,**如下,返回的為m

/*** @desc 根據兩點間的經緯度計算距離

* @param float $lat 緯度值

* @param float $lng 經度值

*/function getdistance($lat1, $lng1, $lat2, $lng2)

{$earthradius = 6371000;

$lat1 = ($lat1 * pi() ) / 180;

$lng1 = ($lng1 * pi() ) / 180;

$lat2 = ($lat2 * pi() ) / 180;

$lng2 = ($lng2 * pi() ) / 180;

根據經緯度計算範圍 地理計算問題總結

地理計算問題1 經緯度計算 經度差與地方時差算經度 地方時每相差1小時,經度相差1 5 緯 度差與正午太陽高度算緯度 正午太陽相差多小,緯度相差多少 北極星的仰角即地平高度等於當地地理緯度 經緯線上長度算經緯度 1 經線長 111km 1 緯線長 111cos km 為緯度 2 比例尺計算 比例尺 ...

中國經緯度範圍

全球經緯度的取值範圍為 緯度 90 90,經度 180 180 中國的經緯度範圍大約為 緯度3.86 53.55,經度73.66 135.05 北京行政中心的緯度為39.92,經度為116.46 越北面的地方緯度數值越大,越東面的地方經度數值越大 度分轉換 將度分單位資料轉換為度單位資料,公式 度 ...

sql語句查詢經緯度範圍

指定乙個經緯度,給定乙個範圍值 單位 千公尺 查出在經緯度周圍這個範圍內的資料。經度 113.914619 緯度 22.50128 範圍 2km longitude為資料表經度字段 latitude為資料表緯度字段 sql在mysql下測試通過,其他資料庫可能需要修改 sql語句如下 select ...