2019/07/20 PHP/Python/Java No Comments 计算两个经纬度的距离/偏差米数_计算周边范围经纬度值 **计算两个经纬度的距离/偏差米数_计算周边范围经纬度值_PHP函数笔记** 计算经纬度距离,首先需要了解球面距离计算公示: ```php r*arccos(cos(lat1*pi()/180 )*cos(lat2*pi()/180)*cos(lng1*pi()/180 -lng2*pi()/180)+ sin(lat1*pi()/180 )*sin(lat2*pi()/180))r*arccos(cos(lat1*pi()/180 )*cos(lat2*pi()/180)*cos(lng1*pi()/180 -lng2*pi()/180)+ sin(lat1*pi()/180 )*sin(lat2*pi()/180)) ``` 其中,lat1,lng1是纬度\经度的弧度单位,r为地球半径。 **获取周边范围的经纬度值 函数** ````php /** * 根据当前经纬度获取周边范围的经纬度值 * @param $lng float 经度 * @param $lat float 纬度 * @param $range 范围:多少千米内,单位km * @return array */ function point2range($lng, $lat, $range = 2.5){ //基于地球半径 R = 6370996.81 $lat_range = 180 / pi() * $range / 6370.99681; //范围:$range 代表周边范围约 几km 之内,单位km $lng_range = $lat_range / cos($lat * pi() / 180); $data['lng'] = array($lng-$lng_range,$lng+$lng_range); $data['lat'] = array($lat-$lat_range,$lat+$lat_range); return $data; } ```` **计算两个经纬度的距离 函数** ```php /** * 计算两个经纬度的距离 * @param $lng1 float 经度1 * @param $lat1 float 纬度1 * @param $lng2 float 经度2 * @param $lat2 float 纬度2 * @return array */ function get_distance($lng1, $lat1, $lng2, $lat2){ //基于地球半径 R = 6370996.81 $earth_radius = 6370996.81; $lat1 = ($lat1 * pi() ) / 180; $lng1 = ($lng1 * pi() ) / 180; $lat2 = ($lat2 * pi() ) / 180; $lng2 = ($lng2 * pi() ) / 180; $distance = acos(cos($lat1) * cos($lat2) * cos($lng1 - $lng2) + sin($lat1) * sin($lat2)); $calculated_distance = $distance * $earth_radius; return round($calculated_distance); } ``` 本文最后更新于 2019-12-03 12:08:35 并被添加「php函数 经纬度计算 php函数笔记」标签,已有 6476 位童鞋阅读过。 本文作者:未来往事 本文链接:https://felixway.cn/post/667.html 本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处 相关文章 使用fastcgi_finish_request实现异步操作提高页面响应速度 html无损截取_保留html标签 php平铺水印/图片添加水印/图片合成 URL数字安全码随机拼组生成及校验 PHP curl函数_解决curl返回空白问题
此处评论已关闭