登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无所谓了嘛

珍惜现在,放眼未来

 
 
 

日志

 
 
 
 

根据百度的经纬度进行范围搜索  

2018-02-07 16:37:58|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//根据经纬度获取距离内的经纬度范围
//$longitude 请求位置的经度
//$latitude  请求位置的维度
//$radii     计算方圆内的半径
function getAround($longitude, $latitude, $radii) {
    $radii = $radii > 100 ? 100 : $radii; //最大只能搜索100公里内的
    $radii = $radii < 1 ? 1 : $radii; //最小能搜索1公里内的
    $earthRadius = 6371004; //地球半径(单位米);
    $earthGirth = 2 * pi() * $earthRadius;//地球周长
    $radii = $radii * 1000; //把千米转为米
    $latitudeDeviant = $earthGirth/360/1000000;//百度地图的一个偏移度为0.11119499645773M(地球经度划分为360份,后面还有6个小数位,所以还要除与1000000)
    $latitudeCOS = COS($latitude*pi()/180);//当前维度下的cos值
    $longitudeDeviant = $latitudeCOS * $latitudeDeviant;//当前维度下的经度偏移
    $latitudeMax = $radii/$latitudeDeviant/1000000 + $latitude; //高维度值(该经纬度往高纬度走最多要到那个维度)
    $latitudeMin = $latitude - $radii/$latitudeDeviant/1000000; //低纬度(该经纬度往低纬度走最多要到那个维度)
    $longitudeMax = $radii/$longitudeDeviant/1000000 + $longitude;//该经纬度下往东跨跨越的经度值
    $longitudeMin = $longitude - $radii/$longitudeDeviant/1000000;//该经纬度下往西跨跨越的经度值
    $result['longitude']['left'] = intval($longitudeMin * 1000000)/1000000;//最左边的经度
    $result['longitude']['right'] = intval($longitudeMax * 1000000)/1000000;//最右边的经度
    $result['latitude']['up'] = intval($latitudeMax * 1000000)/1000000;//最上的维度
    $result['latitude']['down'] = intval($longitudeMin * 1000000)/1000000;//最下的维度
    return $result;
}
  评论这张
 
阅读(134)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018