php 腾讯地图和百度地图的相互转换

Posted 遇事稳坐钓鱼台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 腾讯地图和百度地图的相互转换相关的知识,希望对你有一定的参考价值。

 

关于百度和腾讯地图坐标转换的问题,网上大多给的是JS实现的,而JS又是异步实现的,无法返回值,在有些应用场景下不好使用,这里我从腾讯论坛上找到了一个php转换的方法,贴出来分享给大家。经测试十分有效!

/** 
* 中国正常GCJ02坐标---->百度地图BD09坐标 
* 腾讯地图用的也是GCJ02坐标 
* @param double $lat 纬度 
* @param double $lng 经度 
*/  
function Convert_GCJ02_To_BD09($lat,$lng){  
        $x_pi = 3.14159265358979324 * 3000.0 / 180.0;  
        $x = $lng;  
        $y = $lat;  
        $z =sqrt($x * $x + $y * $y) + 0.00002 * sin($y * $x_pi);  
        $theta = atan2($y, $x) + 0.000003 * cos($x * $x_pi);  
        $lng = $z * cos($theta) + 0.0065;  
        $lat = $z * sin($theta) + 0.006;  
        return array(‘lng‘=>$lng,‘lat‘=>$lat);  
}  
  
/** 
* 百度地图BD09坐标---->中国正常GCJ02坐标 
* 腾讯地图用的也是GCJ02坐标 
* @param double $lat 纬度 
* @param double $lng 经度 
* @return array(); 
*/  
function Convert_BD09_To_GCJ02($lat,$lng){  
        $x_pi = 3.14159265358979324 * 3000.0 / 180.0;  
        $x = $lng - 0.0065;  
        $y = $lat - 0.006;  
        $z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);  
        $theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);  
        $lng = $z * cos($theta);  
        $lat = $z * sin($theta);  
        return array(‘lng‘=>$lng,‘lat‘=>$lat);  
}  

 

以上是关于php 腾讯地图和百度地图的相互转换的主要内容,如果未能解决你的问题,请参考以下文章

php 百度地图 腾讯地图 转换坐标

JS: 百度地图与腾讯/高德地图经纬度转换

微信小程序--百度地图坐标转换成腾讯地图坐标

百度地图腾讯地图,地图坐标标准转换

百度地图转腾讯地图腾讯地图转百度地图

iPhone指南针坐标转换腾讯地图坐标步骤