百度与谷歌地图坐标转换代码(转)

 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);

 

posted @ 2015-03-06 15:16  幻星宇  阅读(877)  评论(0编辑  收藏  举报