百度与谷歌地图坐标转换代码(转)
1 <?php 2 //1、GCJ-02,国测局02年发布的坐标体系。又称“火星坐标”。谷歌,腾讯,高德都在用这个坐标体系。 3 //2、BD-09,百度坐标系 4 //GCJ-02转换BD-09 5 function GCJTobaidu($lat, $lng){ 6 $v = M_PI * 3000.0 / 180.0; 7 $x = $lng; 8 $y = $lat; 9 10 $z = sqrt($x * $x + $y * $y) + 0.00002 * sin($y * $v); 11 $t = atan2($y, $x) + 0.000003 * cos($x * $v); 12 13 return array( 14 'lat' => $z * sin($t) + 0.006, 15 'lng' => $z * cos($t) + 0.0065 16 ); 17 } 18 19 //使用方法 20 $lat = 40.09974; 21 $lng = 116.24847; 22 $coordinate = GCJTobaidu($lat, $lng); 23 var_dump($coordinate); 24 25 //BD-09转换GCJ-02 26 function baiduToGCJ($lat, $lng){ 27 $v = M_PI * 3000.0 / 180.0; 28 $x = $lng - 0.0065; 29 $y = $lat - 0.006; 30 31 $z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $v); 32 $t = atan2($y, $x) - 0.000003 * cos($x * $v); 33 34 return array( 35 'lat' => $z * sin($t), 36 'lng' => $z * cos($t) 37 ); 38 } 39 40 //使用方法 41 $lat = 40.10599; 42 $lng = 116.25489; 43 $coordinate = baiduToGCJ($lat, $lng); 44 var_dump($coordinate);