『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

关于百度地图API的地图坐标转换问题

关于百度地图API的地图坐标转换问题
我在之前的文章利用html5获取经纬度并且在百度地图中显示位置中使用了百度地图的API来显示html5获取的地理位置,在文中我说过这样的话,我说百度地图的准确度不怎么精确,偏差很大。这里我要更正下:

       我在之前的文章利用html5获取经纬度并且在百度地图中显示位置中使用了百度地图的API来显示html5获取的地理位置,在文中我说过这样的话,我说百度地图的准确度不怎么精确,偏差很大。这里我要更正下:

 

      国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。

 

       由此可以看出小编之前冤枉了百度地图,所以如果对您有误导还请见谅。所以写了篇关于百度地图API坐标转换的文章,并且对之前的模型做了修正。

 

      实现代码:

 

//在百度 map中显示地址

    var map = new BMap.Map("map_canvas");

    var point = new BMap.Point(longitudeP , latitudeP);  // 创建点坐标 

    map.centerAndZoom(point, 15);// 初始化地图,设置中心点坐标和地图级别 

    var marker = new BMap.Marker(point);   

    map.addOverlay(marker);

    BMap.Convertor.translate(point,0,translateCallback);     //真实经纬度转成百度坐标

       回调函数代码:

 

//坐标转换完之后的回调函数

function translateCallback(point1){

    var marker1 = new BMap.Marker(point1);

    map.addOverlay(marker1);

    var label = new BMap.Label("转换后的百度坐标",{offset:new BMap.Size(20,-10)});

    marker1.setLabel(label); //添加百度label

    map.setCenter(point1);

}

       这是新的效果图:

 

 

 

       可以看出转换出的效果还是相当精确的,并且从我这里的demo来看要比谷歌地图精确的多!所以如果也有像我一样的用户发现调用baidu map坐标有偏差的话,很有可能就是没有进行坐标转换。

 

       关于这个demo

 

      在线查看demo    猛击这里下载这个demo

 

       解压密码:

 

      malagis.com

      京ICP备08100627号-22 京公网安备 11010802030428号