Android studio 百度地图开发(7)overlayManager、overlayutil应用
开发环境:win7 64位,Android Studio,请注意是Android Studio;
+导航SDK版本:3.1.0+地图SDK版本:3.7.3+定位SDK版本:6.2.3
百度地图开发系列文章:
百度地图应用(4):Android studio 百度地图开发(4)触摸选点、地理编码
该部分内容还是属于导航部分的应用,例如《Android studio 百度地图开发(3)地图导航》。只是应用(3)里使用的是百度官方导航Demo:有起点和终点后,直接进入导航模式,而不会先展示规划路径,然后点击导航才正式进入导航模式。可能有时候我们也有这样的需求:在地图上选择起点和终点后,需要给出几种规划方案供我们选择,比如:躲避拥堵、时间最少、少换乘等等;另外一点,我们可能需要在地图上展示出这些规划方案,也就是在地图上添加路径图层,此时就需要用到overlay以及其子类DrivingRouteOverlay等等。
But,问题就随之而来。为了实现这个需求,ask度娘,就会查到很多现成的导航例子,但是这些例子所使用的SDK版本都比较旧了,使用较新的SDK+别人的代码或者是官方Demo,都会出现问题,那就是找不到PoiOverlay、TransitRouteOverlay、WalkingRouteOverlay、BusLineOverlay、DrivingRouteOverlay等等,为什么呢?因为从SDK3.6.0以后,这些类代码已经放在了源码包:com.baidu.mapapi.overlayutil中,而overlayutil源码包并没有在3.6.0之后的SDK中。
既然问题是这样的,那就只能自己将官方的overlayutil整合到自己的工程里了。为了减少需要改动的地方,我们需要在自己的工程里再新建一个包,用来放置官方的overlayutil相关代码,步骤如下。
1)先下载官方的overlayutil和clusterutil。
下载地址1:点击下载【推荐,附带使用说明的文档】
下载地址2:点击下载【下载示例代码】
2)使用方法
①如果是使用下载地址1:解压后按照方法.txt即可
②如果是下载方法2:
解压后,源码路径为:BaiduMap_AndroidMapSDK_v3.7.1_Sample\BaiduMapsApiDemo\src\com\baidu\mapapi
然后:1)方式一:在工程的../java目录下新建com->baidu->mapapi,然后将clusterutil和overlayutil复制进去就可以;
2)方式二:直接将src/下的整个com文件复试到工程的java目录下。
最终的样子:
然后就可以正常使用规划路径图层了,关于图层的添加方法和类设计《点击查看,一定要看》:
route = result.getRouteLines().get(0); DrivingRouteOverlay overlay = new DrivingRouteOverlay(mBaidumap); //routeOverlay = overlay; mBaidumap.setOnMarkerClickListener(overlay); overlay.setData(result.getRouteLines().get(0)); overlay.addToMap(); overlay.zoomToSpan();