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 相关文章推荐
配置支持SSI
Nov 25 PHP
php下实现伪 url 的超简单方法[转]
Sep 24 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
Feb 18 PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 PHP
php中spl_autoload详解
Oct 17 PHP
CodeIgniter删除和设置Cookie的方法
Apr 07 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
深入浅析Yii admin的权限控制
Aug 31 PHP
PHP实时统计中文字数和区别
Feb 28 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
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
PHP积分兑换接口实例
2015/02/09 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
Augularjs-起步详解
2016/07/08 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
js 对象使用的小技巧实例分析
2019/11/08 Javascript
跟老齐学Python之做一个小游戏
2014/09/28 Python
Numpy array数据的增、删、改、查实例
2018/06/04 Python
python列表使用实现名字管理系统
2019/01/30 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
python将数组n等分的实例
2019/12/02 Python
大学信息公开实施方案
2014/03/09 职场文书
公司请假条格式
2014/04/11 职场文书
《新型玻璃》教学反思
2014/04/13 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
实验室的标语
2014/06/20 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
2014年租房协议书范本
2014/10/30 职场文书
2014年食堂工作总结
2014/11/20 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis