代码学堂(uxuew.cn)提供付费解决PHP WEB开发等技术服务,如果需要请 点击加我QQ:1662935793.
>编程开发 > php教程 > 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的相互转换算法

火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的相互转换算法

php教程 围观2982次 更新日期:2017-09-29 11:47:42 留下足迹

php火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的相互转换算法
//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);
	$data['bd_lon'] = $z * cos($theta) + 0.0065;
	$data['bd_lat'] = $z * sin($theta) + 0.006;
	return $data;
}

//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);
	return $data;
}

转载请注明:代码学堂>编程开发 > php教程 > 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的相互转换算法

喜欢 (364) or 分享 (56)