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 30 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
Jan 31 PHP
php+mysql实现数据库随机重排实例
Oct 17 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 PHP
PHP针对JSON操作实例分析
Jan 12 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
thinkPHP多语言切换设置方法详解
Nov 11 PHP
PHP中大括号'{}'用法实例总结
Feb 08 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 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下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
PHP对象Object的概念 介绍
2012/06/14 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
python实现用户管理系统
2018/01/10 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
python框架中flask知识点总结
2018/08/17 Python
Python&&GDAL实现NDVI的计算方式
2020/01/09 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
爱国口号
2014/06/19 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
环保建议书范文
2015/09/14 职场文书
2015团员个人年度总结
2015/11/24 职场文书
js中Object.create实例用法详解
2021/10/05 Javascript