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 相关文章推荐
我的论坛源代码(四)
Oct 09 PHP
php 静态页面中显示动态内容
Aug 14 PHP
php 团购折扣计算公式
Nov 24 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
深入PHP内存相关的功能特性详解
Jun 08 PHP
关于php循环跳出的问题
Jul 01 PHP
PHP实现变色验证码实例
Jan 06 PHP
php更新修改excel中的内容实例代码
Feb 26 PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
PHP有序表查找之插值查找算法示例
Feb 10 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
thinkphp连贯操作实例分析
2014/11/22 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
为数据添加append,remove功能
2006/10/03 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
Python中使用中文的方法
2011/02/19 Python
python实现中文输出的两种方法
2015/05/09 Python
Python有序字典简单实现方法示例
2017/09/28 Python
python实现二叉查找树实例代码
2018/02/08 Python
Python callable()函数用法实例分析
2018/03/17 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
印刷工程专业应届生求职信
2013/09/29 职场文书
自动化系在校本科生求职信
2013/10/23 职场文书
中文系学生自荐信范文
2013/11/13 职场文书
销售文员的岗位职责
2013/11/20 职场文书
房屋继承公证书
2014/04/10 职场文书
生活部的活动方案
2014/08/19 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
交通安全教育主题班会
2015/08/12 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL