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数组应用之比较两个时间的相减排序
Aug 18 PHP
基于PHP CURL获取邮箱地址的详解
Jun 03 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
基于php和mysql的简单的dao类实现crud操作功能
Jan 27 PHP
PHP批量检测并去除文件BOM头代码实例
May 08 PHP
PHP登录环节防止sql注入的方法浅析
Jun 30 PHP
php防止站外远程提交表单的方法
Oct 20 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
Laravel 加载第三方类库的方法
Apr 20 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 02 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单件模式结合命令链模式使用说明
2008/09/07 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Python paramiko模块的使用示例
2018/04/11 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
如何清空python的变量
2020/07/05 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
《庐山的云雾》教学反思
2014/04/22 职场文书
2015年读书月活动总结
2015/03/26 职场文书
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技