PHP计算百度地图两个GPS坐标之间距离的方法


Posted in PHP onJanuary 09, 2015

本文实例讲述了PHP计算百度地图两个GPS坐标之间距离的方法。分享给大家供大家参考。

具体实现方法如下:

/**

 * 计算两个坐标之间的距离(米)

 * @param float $fP1Lat 起点(纬度)

 * @param float $fP1Lon 起点(经度)

 * @param float $fP2Lat 终点(纬度)

 * @param float $fP2Lon 终点(经度)

 * @return int

 */

function distanceBetween($fP1Lat, $fP1Lon, $fP2Lat, $fP2Lon){

    $fEARTH_RADIUS = 6378137;

    //角度换算成弧度

    $fRadLon1 = deg2rad($fP1Lon);

    $fRadLon2 = deg2rad($fP2Lon);

    $fRadLat1 = deg2rad($fP1Lat);

    $fRadLat2 = deg2rad($fP2Lat);

    //计算经纬度的差值

    $fD1 = abs($fRadLat1 - $fRadLat2);

    $fD2 = abs($fRadLon1 - $fRadLon2);

    //距离计算

    $fP = pow(sin($fD1/2), 2) +

          cos($fRadLat1) * cos($fRadLat2) * pow(sin($fD2/2), 2);

    return intval($fEARTH_RADIUS * 2 * asin(sqrt($fP)) + 0.5);

}

/**

 * 百度坐标系转换成标准GPS坐系

 * @param float $lnglat 坐标(如:106.426, 29.553404)

 * @return string 转换后的标准GPS值:

 */

function BD09LLtoWGS84($fLng, $fLat){ // 经度,纬度

    $lnglat = explode(',', $lnglat);

    list($x,$y) = $lnglat;

    $Baidu_Server = "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x={$x}&y={$y}";

    $result = @file_get_contents($Baidu_Server);

    $json = json_decode($result);

    if($json->error == 0){

        $bx = base64_decode($json->x);

        $by = base64_decode($json->y);

        $GPS_x = 2 * $x - $bx;

        $GPS_y = 2 * $y - $by;

        return $GPS_x.','.$GPS_y;//经度,纬度

    }else

        return $lnglat;

}

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
Feb 16 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
php无限遍历文件夹示例分享
Mar 04 PHP
php实现的递归提成方案实例
Nov 14 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
Yii2汉字转拼音类的实例代码
Apr 18 PHP
ThinkPHP实现附件上传功能
Apr 27 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 PHP
php实现表单提交上传文件功能
May 28 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
Dec 21 PHP
如何用PHP实现多线程编程
May 26 PHP
php实现按照权重随机排序数据的方法
Jan 09 #PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 #PHP
linux中cd命令使用详解
Jan 08 #PHP
php计划任务之ignore_user_abort函数实现方法
Jan 08 #PHP
网站防止被刷票的一些思路与方法
Jan 08 #PHP
分享常见的几种页面静态化的方法
Jan 08 #PHP
php的ddos攻击解决方法
Jan 08 #PHP
You might like
php下实现折线图效果的代码
2007/04/28 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
JS原型对象通俗"唱法"
2012/12/27 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
简述JS控制台的使用
2018/07/15 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
React父子组件间的传值的方法
2018/11/13 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
python实现计算资源图标crc值的方法
2014/10/05 Python
python简单的函数定义和用法实例
2015/05/07 Python
Python 递归函数详解及实例
2016/12/27 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
法学研究生自我鉴定范文
2013/12/04 职场文书
售后主管岗位职责
2013/12/08 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
绿色环保演讲稿
2014/05/10 职场文书
单位接收函范文
2015/01/30 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
PHP使用QR Code生成二维码实例
2021/07/07 PHP
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫