国际经纬度坐标标准为WGS-84,海内必须至少利用国测局制订的GCJ-02,对地理位置进行首次加密。百度坐标在此根本上,进行了BD-09二次加密方法,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,须要通过坐标转换接口进行转换。
由此可以看出
实当代码:
//在百度 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坐标有偏差的话,很有可能便是没有进行坐标转换。