1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 百度地图(BD-09)坐标系和高德(GCJ-02)坐标系的相互转换(PHP版)

百度地图(BD-09)坐标系和高德(GCJ-02)坐标系的相互转换(PHP版)

时间:2022-01-06 11:28:43

相关推荐

百度地图(BD-09)坐标系和高德(GCJ-02)坐标系的相互转换(PHP版)

简单介绍一下常见的地理经纬度坐标系:

WGS-84坐标系:

是国际标准坐标系,GPS坐标(Google Earth使用、或者GPS模块)。

GCJ-02坐标系:

火星坐标系,GCJ-02是由中国国家测绘局制订的地理信息系统的坐标系统。它是一种对经纬度数据的加密算法,即加入随机的偏差。国内出版的各种地图系统(包括电子形式),出于国家安全考虑,必须至少采用GCJ-02对地理位置进行首次加密。国内腾讯地图和高德地图都采用了GCJ-02火星坐标系。

BD-09坐标系:

百度坐标系,也就是在GCJ-02的基础上,进行了BD-09二次加密措施生成的一种坐标系。

GCJ-02(火星,高德) 坐标和BD-09(百度) 坐标相互转换的函数PHP版本:

//BD-09(百度)坐标转换成GCJ-02(火星,高德)坐标//@param bd_lon 百度经度//@param bd_lat 百度纬度function bd_decrypt($bd_lon,$bd_lat){$x_pi = 3.14159265358979324 * 3000.0 / 180.0;$x = $bd_lon - 0.0065;$y = $bd_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);// $data['gg_lon'] = $z * cos($theta);// $data['gg_lat'] = $z * sin($theta);$gg_lon = $z * cos($theta);$gg_lat = $z * sin($theta);// 保留小数点后六位$data['gg_lon'] = round($gg_lon, 6);$data['gg_lat'] = round($gg_lat, 6);return $data;}//GCJ-02(火星,高德)坐标转换成BD-09(百度)坐标//@param bd_lon 百度经度//@param bd_lat 百度纬度function bd_encrypt($gg_lon,$gg_lat){$x_pi = 3.14159265358979324 * 3000.0 / 180.0;$x = $gg_lon;$y = $gg_lat;$z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);$theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);$bd_lon = $z * cos($theta) + 0.0065;$bd_lat = $z * sin($theta) + 0.006;// 保留小数点后六位$data['bd_lon'] = round($bd_lon, 6);$data['bd_lat'] = round($bd_lat, 6);return $data;}

/archives/1628.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。