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 相关文章推荐
PHP 获取目录下的图片并随机显示的代码
Dec 28 PHP
php中函数的形参与实参的问题说明
Sep 01 PHP
url decode problem 解决方法
Dec 26 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
PHP生成RSS文件类实例
Dec 05 PHP
windows7下php开发环境搭建图文教程
Jan 06 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
PHP请求远程地址设置超时时间的解决方法
Oct 29 PHP
php获取客户端IP及URL的方法示例
Feb 03 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
php生成word并下载代码实例
Mar 15 PHP
PHP实现对数字分隔加千分号的方法
Mar 18 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上传文件参考配置大文件上传
2015/12/16 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
微信自定义分享php代码分析
2016/11/24 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
告诉大家什么是JSON
2008/06/10 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
JS从数组中随机取出几个数组元素的方法
2016/08/02 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
Python中操作MySQL入门实例
2015/02/08 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
Python中的random()方法的使用介绍
2015/05/15 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
python中metaclass原理与用法详解
2019/06/25 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
中职应届生会计求职信
2013/10/23 职场文书
2014村务公开实施方案
2014/02/25 职场文书
2014年度党员自我评议
2014/09/13 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
保卫工作个人总结
2015/03/03 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
高中物理教学反思
2016/02/19 职场文书