首页 > 代码库 > Android开发心得——百度地图sdk使用

Android开发心得——百度地图sdk使用

本博文欢迎转载,转载请注明来自http://www.cnblogs.com/qinxianyuzou/

如果各位看完这篇文章有任何疑问的欢迎交流,去新浪微博关注我Android小码农,共同探讨Android的应用开发的问题。

很久没有写过技术分享贴了,今天我们来讲一下百度地图sdk,顺便算是给自己马克一个。

事实上现在百度地图sdk已经很多东西都做好了,并不需要做很多工序,不过值得注意的是,现在百度把地图跟定位分开了,所以做一些定位之类的就需要两者结合。

百度地图sdk它本身的demo就是很好的事例,我并不认为自己能写出比它好多少的东西,所以大家参考demo就可以。

那么我今天要说什么呢?我就说说关于覆盖层跟定位的一些注意事项吧。

其实查看demo,你不难学会对地图定位的使用,你会轻易的展示出你的地图,覆盖层也是如此,不过我最近做app的时候就出现了一个奇葩的问题,那就是,当你用覆盖层标记一些你自己需要标记的信息是,定位图标却没有了。我那个郁闷啊,足足花了两天时间去研究为什么,但愣是没有研究出个所以然。不过最后不知道为何灵光一闪,定位图标跟覆盖层所继承的接口好像都是Overlay接口,那么会不会是相互影响到呢?在百度的demo里面,你不难发现覆盖层的调用其中有这么一句

1 mMapView.getOverlays().clear();

这一句代码的作用就是清楚已经在地图上的覆盖物的,我看了一下,发现定位的那个图标其实也是一个覆盖物,于是我联想到定位图标之所以消失,就是因为我清掉了覆盖物。经过测试,当我不再绘制覆盖物,也就是不调用上面这段代码的时候,定位图标就又出来了。那么结果就很明显了,之所以定位图标消失了,就是因为上面这句代码把它给清掉了。那怎么处理呢?我用了一个比较笨的方法,就是在清掉覆盖层以后,重新再给地图的定位图层初始化一次,那么定位图标就正常出现了。

mlmv_nearby_lv1.getOverlays().clear();
baiduMapMain.setLocationOverlay();
mlmv_nearby_lv1.getOverlays().add(itemOverlay);