最近測試百度地圖用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類了。