ThinkPHP實現經緯度範圍查詢

2022-08-17 05:33:14 字數 883 閱讀 5647

thinkphp實現附近範圍的查詢,如附近的人和附近**之類。

首先,要定位使用者的經緯度。客戶端定位的方法可以使用地圖api或者用html5瀏覽器定位(比較不穩定而且不會太精確)。

然後,將當前經緯度,和需要搜尋的距離範圍,計算乙個經緯度範圍,這個範圍就是「附近」。計算這個「附近」的示例如下:

/*

* *

* @param $latitude 緯度

* @param $longitude 經度

* @param $raidus 半徑範圍(單位:公尺)

* @return multitype:number

*/public

function getaround($latitude,$longitude,$raidus

)

然後,把獲得的經緯度距離,組裝成sql。thinkphp對sql條件有很好的封裝,超級便捷

$array = $this->getaround($lat, $lng, 2000);

$condition['latitude'] = array(array('egt',$array['minlat']),array('elt',$array['maxlat']),'and');//

(`latitude` >= minlat) and (`latitude` <=maxlat)

$condition['longitude'] = array(array('egt',$array['minlng']),array('elt',$array['maxlng']),'and');//

(`longitude` >= minlng) and (`longitude` <= maxlng)

中國經緯度範圍

全球經緯度的取值範圍為 緯度 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 ...

sql語句查詢經緯度範圍

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