Android studio 百度地图开发(7)overlayManager、overlayutil应用

Android studio 百度地图开发(7)overlayManager、overlayutil应用


开发环境:win7 64位,Android Studio,请注意是Android Studio;

+导航SDK版本:3.1.0+地图SDK版本:3.7.3+定位SDK版本:6.2.3


百度地图开发系列文章:

  • 百度地图应用(1):Android studio 百度地图开发(1)配置工程、显示地图
  • 百度地图应用(2)Android studio 百度地图开发(2)地图定位
  • 百度地图应用(3)Android studio 百度地图开发(3)地图导航
  • 百度地图应用(4)Android studio 百度地图开发(4)触摸选点、地理编码

  • 百度地图应用(5):Android studio 百度地图开发(5)查询周边服务(加油站)
  • 百度地图应用(6):Android studio 百度地图开发(6)Marker绑定事件、计算两点距离

一.问题引入

        该部分内容还是属于导航部分的应用,例如《Android studio 百度地图开发(3)地图导航》。只是应用(3)里使用的是百度官方导航Demo:有起点和终点后,直接进入导航模式,而不会先展示规划路径,然后点击导航才正式进入导航模式。可能有时候我们也有这样的需求:在地图上选择起点和终点后,需要给出几种规划方案供我们选择,比如:躲避拥堵、时间最少、少换乘等等;另外一点,我们可能需要在地图上展示出这些规划方案,也就是在地图上添加路径图层,此时就需要用到overlay以及其子类DrivingRouteOverlay等等。

        But,问题就随之而来。为了实现这个需求,ask度娘,就会查到很多现成的导航例子,但是这些例子所使用的SDK版本都比较旧了,使用较新的SDK+别人的代码或者是官方Demo,都会出现问题,那就是找不到PoiOverlayTransitRouteOverlayWalkingRouteOverlayBusLineOverlayDrivingRouteOverlay等等,为什么呢?因为从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();

你可能感兴趣的:(android,百度地图,Studio,overlayutil)