当前位置:  首页  >  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玩法