最近测试百度地图用SDK v3.7.3的版本,使用POI检索功能的时候,想直接使用PoiOverlay类创建对象把检索出来的结果在地图上表示出来、按照正常的方法如下:
PoiOverlay poiOverlay = new PoiOverlay(mBaiduMap);
poiOverlay.setData(result);
poiOverlay.addToMap();
可是无论如何也没有也找不到这个类、后来去了百度官方论坛一看原来如下:
为了给广大开发者提供更丰富的覆盖物展示能力,自V3.6.0起,原内置覆盖物相关类代码开源(MarkerManager/OverlayManager/PoiOverlay/TransitRouteOverlay/WalkingRouteOverlay/BusLineOverlay/DrivingRouteOverlay)。地图sdk v3.6.0 开放了“点聚合功能”和“内置覆盖物”源码包com.baidu.mapapi.overlayutil。
关于找不到overlayutil文件的问题,请开发者到官方demo的src目录下获取源码,SDK中的jar包将不再包含这部分
解决方法如下:
1.下载百度地图SDK v3.6.0及以上版本时候,在官网下载相关的demo:
下载好后解压、有两个不同编译软件的demo:
一个是eclipse、另外一个是Android studio、我使用的是Android studio环境、那么在Android studio中导入BaiduMapsApiASDemo这个项目、eclipse就导入BaiduMapsDemo这个项目。
3.导入Android studio因为官方的demo的gradle和我自己使用的gradle不同样、Android版本也不同样、这时候导入后把官方demo的build.gradle中的compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersiond、supportv7包的版本号改为和自己项目中版本号一样。
4.开源码位置在BaiduMap_AndroidMapSDK_v3.7.3_Sample\BaiduMapsApiDemo\src\com\baidu\mapapi,类PoiOverlay在com.baidu.mapapi.overlayutil包中。然后在官方demo中直接复制(Ctrl+c)粘贴到自己项目相应的位置中:
粘贴到自己的项目中后、这个时候会报错如下:
这个时候右击鼠标delete、删除掉这个包(clusterutil)就可以了。至此项目可以引用PoiOoverlay类了。