您的位置:首页 > 其它

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

2014-05-07 22:02 375 查看
1、GCJ-02,国测局02年发布的坐标体系。又称“火星坐标”。谷歌,腾讯,高德都在用这个坐标体系。

2、BD-09,百度坐标系

//GCJ-02转换BD-09
function GCJTobaidu($lat, $lng){
$v = M_PI * 3000.0 / 180.0;
$x = $lng;
$y = $lat;

$z = sqrt($x * $x + $y * $y) + 0.00002 * sin($y * $v);
$t = atan2($y, $x) + 0.000003 * cos($x * $v);

return array(
'lat' => $z * sin($t) + 0.006,
'lng' => $z * cos($t) + 0.0065
);
}

使用方法

$lat = 32.1287736098;
$lng = 114.082163843;
$coordinate = GCJTobaidu($lat, $lng);
var_dump($coordinate);


//BD-09转换GCJ-02
function baiduToGCJ($lat, $lng){
$v = M_PI * 3000.0 / 180.0;
$x = $lng - 0.0065;
$y = $lat - 0.006;

$z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $v);
$t = atan2($y, $x) - 0.000003 * cos($x * $v);

return array(
'lat' => $z * sin($t),
'lng' => $z * cos($t)
);
}

使用方法

$lat = 32.134632;
$lng = 114.088683;
$coordinate = baiduToGCJ($lat, $lng);
var_dump($coordinate);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: