最近测试百度地图用SDK v3.7.3的版本,使用POI检索功能的时候,想直接使用PoiOverlay类建立对象把检索出来的结果在地图上表示出来、按照正常的方法以下:api
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。eclipse
关于找不到overlayutil文件的问题,请开发者到官方demo的src目录下获取源码,SDK中的jar包将再也不包含这部分测试
解决方法以下:gradle
1.下载百度地图SDK v3.6.0及以上版本时候,在官网下载相关的demo:ui
下载好后解压、有两个不一样编译软件的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类了。