百度坐标 高德坐标彼此转化ITeye - 超凡娱乐

百度坐标 高德坐标彼此转化ITeye

2019-01-10 11:29:10 | 作者: 雨欣 | 标签: 百度,坐标,高德 | 浏览: 3074

GCJ-02坐标系:

火星坐标系,GCJ-02是由我国国家测绘局制定的地理信息体系的坐标体系。它是一种对经纬度数据的加密算法,即参加随机的误差。国内出书的各种地图体系(包含电子方式),出于国家安全考虑,有必要至少选用GCJ-02对地理位置进行初次加密。国内腾讯地图和高德地图都选用了GCJ-02火星坐标系。

BD-09坐标系:

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

GCJ-02(火星,高德) 坐标和BD-09(百度) 坐标彼此转化的函数PHP版别:

 ?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;
}

 2

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表超凡娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章