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扩展函数
Oct 09 PHP
PHP 和 XML: 使用expat函数(二)
Oct 09 PHP
浅析PHP页面局部刷新功能的实现小结
Jun 21 PHP
php除数取整示例
Apr 24 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
Nov 05 PHP
php中return的用法实例分析
Feb 28 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 PHP
PHP实现微信小程序用户授权的工具类示例
Mar 05 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
Sep 16 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 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 FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
JavaScript的RequireJS库入门指南
2015/07/01 Javascript
js命名空间写法示例
2015/12/18 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
Bootstrap基本样式学习笔记之图片(6)
2016/12/07 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
nodejs的路径问题的解决
2018/06/30 NodeJs
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
2020/04/10 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
Python SQLite3数据库操作类分享
2014/06/10 Python
聊聊Python中的pypy
2018/01/12 Python
python url 参数修改方法
2018/12/26 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
外企C语言笔试题
2013/11/10 面试题
《燕子专列》教学反思
2014/02/21 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
任命书格式
2014/06/05 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
Springboot中如何自动转JSON输出
2022/06/16 Java/Android