关于百度地图API的地图坐标转换问题
发布时间: 2013-04-12
所属分类: GIS探秘
我在之前的文章利用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:
解压密码:
malagis.com
PS:注意,密码是malagis.com,没有前面的http,不要从浏览器直接复制啊,亲!
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。
手机阅读
公众号关注
知识星球
手机阅读
最新GIS干货
私享圈子
原来作者在地大上学啊.好近.
没有啦,那是本科的时候了。
请问楼主,如何自定义显示图标呢?
你长得好像一个我同班同学啊
是么,好有缘哦~
原来是武汉的额啊
对啊~
BMap.Convertor.translate(point,0,translateCallback); 求助,这个方法貌似不在百度地图的JS里面?怎么找到这个方法?
需要包含下面这句js代码,
您好,非常冒昧地想问问如果我通过百度POI获得很多点的经纬度坐标,我应该怎么样对他统一进行坐标转换?
百度坐标转换GPS坐标么?
不好意思,我不清楚GPS具体的投影,我想是百度坐标转换成标准WGS-84的系统。
你参考下这个?http://my.oschina.net/Thinkeryjgfn/blog/402565?fromerr=NwvOu4GN
您好,非常冒昧地想问问,为啥我用百度自己的坐标拾取系统获得的经纬度然后直接显示加载到百度地图上也会有偏差呢?
我知道了,非常感谢
https下怎么转换呢?好像不能https下转换为百度坐标啊
怎么开启在手机上用手来缩放地图,就是两根手指放大缩小的!求告知
您好,想问下百度地图的地标能在QGIS中调用吗?类似GOOGLE的Label一样?感觉百度的全一点
我用百度坐标拾取器下载了一些位置点的经纬坐标,已经装换为地球坐标,在GIS中跟我的地形图大概有几千公里偏移
转的不对?