百度坐标与WGS84(GPS)原生坐标之间的转换

       百度地图坐标看起来跟GPS一样,但实际上根据国家原测绘地理信息局的要求,互联网地图在坐标位置上均做了偏移旋转,包括在国内开放的Google地图(Google地球与国际版的谷歌地图是WGS-84坐标,但是由于技术原因无法在国内访问)。本文来自广州地理信息:http://www.gzgis.com

       如何把畸形的百度坐标转换为WGS-84坐标(即原生GPS坐标)呢?可以通过访问百度地图提供的一个方法转换,具体转换代码如下:

        function BD09LLtoWGS84($lnglat){ // 经度,纬度
            $lnglat = explode(',', $lnglat);
            list($x,$y) = $lnglat;
            $Baidu_Server = "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x={$x}&y={$y}";
            $result = @file_get_contents($Baidu_Server);
            $json = json_decode($result);
            if($json->error == 0){
                $bx = base64_decode($json->x);
                $by = base64_decode($json->y);
                $GPS_x = 2 * $x - $bx;
                $GPS_y = 2 * $y - $by;
                return $GPS_x.','.$GPS_y;//经度,纬度
            }else{
                return $lnglat;
            }
        }

        需传入百度坐标参数,$lnglat 坐标(如:114.326, 23.573404),返回GPS原生坐标。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

粤ICP备19141338号,Copyright Your gzgis.com Rights Reserved.