當前位置:  首頁  >  PHP教程  >  PHP 基礎  >  基礎教程

PHP根據經緯度獲取在范圍坐標的數據

PHP根據經緯度獲取在范圍坐標的數據計算范圍,可以做搜索用戶

//計算范圍,可以做搜索用戶

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function GetRange($lat,$lon,$raidus){
  //計算緯度
  $degree = (24901  1609) / 360.0;
  $dpmLat = 1 / $degree;
  $radiusLat = $dpmLat  $raidus;
  $minLat = $lat  $radiusLat; //得到最小緯度
  $maxLat = $lat + $radiusLat; //得到最大緯度
  //計算經度
  $mpdLng = $degree  cos($lat  (PI / 180));
  $dpmLng = 1 / $mpdLng;
  $radiusLng = $dpmLng  $raidus;
  $minLng = $lon  $radiusLng; //得到最小經度
  $maxLng = $lon + $radiusLng; //得到最大經度
  //范圍
  $range = array(
    'minLat' => $minLat,
    'maxLat' => $maxLat,
    'minLon' => $minLng,
    'maxLon' => $maxLng
  );
  return $range;
}



獲取范圍內的所有數據

1
2
3
4
5
6
7
8
9
$result = GetRange(110.325945,20.031541,5000);
 
 
$where = " (`jingdu` between ".$result['minLat']." and ".$result['maxLat'].") and ( `weidu` between ".$result['minLon']." and ".$result['maxLon']." ) ";
$query = $db>query("select  from ".DB_PRE."hospital where $where order BY id DESC ");
while ( $row = $db>fetch_array($query) ) {
    $list[] = $row['all_name'];
}
print_r($list);

吐了個 "CAO" !
掃碼關注 PHP1 官方微信號
PHP1.CN | 中國最專業的PHP中文社區 | PHP資訊 | PHP教程 | 數據庫技術 | 服務器技術 | 前端開發技術 | PHP框架 | 開發工具 | PHP問答
Copyright ? 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社區 版權所有
     
28玩法