用了百度地图API一个月,是时候总结(pen)一波了!
1、初始化百度地图的时候,必须要传你要定位的地点,否则根本不能初始化!而高德地图只需要传一个zoom,就可以初始化,而且会根据目前用户的位置自!动!定!位!很多项目需求其实就是根据用户当前位置自动定位,如果百度地图要实现自动定位功能,还要调用LocalCity()方法来获取用户当前位置,然后传入地图实例中,光这个就多了好几行代码。。。
2、由于项目需求,需要实例化两张百度地图,通过一个切换按钮实现两张地图的相互切换,然后出现了有一张不能显示完全的bug,心累。。。看下图吧
切换前
切换后
猜测可能是两张地图实例化时序冲突,手动延迟了百度地图实例化时序,果然正常。。。然而同样的代码换成了高德地图,屁!事!儿!没!有!
-------附上百度官方解答:http://bbs.lbsyun.baidu.com/forum.phpmod=viewthread&tid=85165&extra=page%3D1
3、百度地图的label文本标注,由于和bootstrap框架冲突,导致宽度不可设置,解决方法:设置label的style属性max-width:none,高德地图不知道有没有这个bug,没测
4、还是百度地图label文本标注问题!当百度地图缩放及移动时,label会!消!失!还好这个问题在网上早就有人总结(pen)过,也给出了解决方法:只要在缩放及移动前将当前label储存起来,在缩放及移动后再把之前储存的label设置回去就可以了,具体原因可自行百度。一般是在百度地图的removeOverlay事件之前储存,后来测试发现moving和zoomend事件也可以
5、这点其实直接观测百度地图DOM节点也能知道,百度地图左下角的‘百度地图’logo的官方class值是BMap_cpyCtrl和anchorBL,然后就可以动!他!了!
6、百度全景图功能,这个必须要赞一下,因为高德API目前还没有全景图接口。但!是!还是坑了我一下午,并不是所有的定位点都有全景图,这个表示理解,没有全景图的定位点全景图区域会显示空白,那!是!有!前!提!的!如果是通过直接更换定位点的方式实现的切换全景图,当切换到没有全景图的定位点的时候,全景图区域会显示上!一!张!全!景!图!除非你没有上一张全景图,那就是正常的。因此切换全景图不能仅仅是更换定位点,而是要重新实例化全景图对象,且切换后调用hide()方法,那么这时如果切换后的定位点没有全景图,那显示全景图区域就是空白的
7、百度地图坐标批量转换API,官方文档说一次能转换100个点,实测一次只能转换10个点!