• Android 驾车出行路线规划


    好久没有写了,今天又是加班的一天,先随便写点东西吧。

    最近在搞一款自驾游的项目,需要用到地图,扒了点高德上的数据,便集成了高德地图SDK。之前的项目大部分都只是用了定位,其中有一款也用了地图poi的搜索,都没有接到高德要求收商业授权费。这次这个项目调用的接口将会很多,看会不会要求收商业授权费吧。

    吐槽下高德地图的开发指南文档、Demo,版本大改动这些都不带更新的。得看参考手册

    路线规划不显示路况拥堵的问题,让我们Android开发走了很多弯路。我帮忙看了下,有几次都要放弃了,最后我还是攻克了。希望对刚接触高德地图的友友们有所帮助。

    言归正传———

    集成sdk:高德sdk更新日志
    高德地图Android SDK(3D地图) V9.5.0             2022-10-14
    高德地图Android SDK(搜索)  V9.5.0             2022-11-08

    需求场景:

    根据起终点规划出驾车出行路线,这就要应用到高德中的驾车出行路线规划的功能。

    问题:

    Demo给的方法是使用RouteSearch搜索规划路线,路线是有的,但是不显示道路拥堵情况。以下是AMap_Android_API_3DMap_Demo 驾车路径规划运行截图。

    1. RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(startLatLon, latLonPoint);
    2. // fromAndTo包含路径规划的起点和终点,drivingMode表示驾车模式
    3. // drivingMode表示路径规划的策略,可选,默认为0-速度优先;
    4. // 第三个参数表示途经点(最多支持6个),第四个参数表示避让区域(最多支持32个),第五个参数表示避让道路
    5. DriveRouteQuery query = new DriveRouteQuery(fromAndTo, drivingMode, null, null, "");
    6. //使用类 RouteSearch 的 calculateRideRouteAsyn(RideRouteQuery query)
    7. //方法进行骑行规划路径计算。
    8. routeSearch.calculateDriveRouteAsyn(query)
    9. //接收数据
    10. public void onDriveRouteSearched(DriveRouteResult result, int rCode) {
    11. final DrivePath drivePath = result.getPaths().get(0);//获取规划出的第一条路线方案。
    12. List drivePaths = drivePath.getSteps();//返回驾车规划方案的路段列表。
    13. for (DriveStep step : drivePaths) {
    14. List latlonPoints = step.getPolyline();//返回驾车路段的坐标点集合。
    15. List tmclist = step.getTMCs();//获取搜索返回的路径规划交通拥堵信息。
    16. tmcs.addAll(tmclist);
    17. }
    18. }

    此时使用类 RouteSearch进行出行规划路径计算,获取搜索返回的路径规划交通拥堵信息getTMCs()返回的是空的。

    calculateRideRouteAsyn(RouteSearch.RideRouteQuery rideQuery)

    此方法已过时。 自9.4.0废弃 RouteSearchV2.calculateRideRouteAsyn(com.amap.api.services.route.RouteSearchV2.RideRouteQuery)

    解决:

    那我们改用RouteSearchV2。此刻要注意了,很重要的一行代码,不加此代码,路线坐标都没有。

    1. RouteSearchV2.FromAndTo fromAndTo = new RouteSearchV2.FromAndTo(startLatLon, latLonPoint);
    2. RouteSearchV2.DriveRouteQuery query = new RouteSearchV2.DriveRouteQuery(fromAndTo, RouteSearchV2.DrivingStrategy.DEFAULT, null,
    3. null, "");
    4. //不加此行代码,一些数据不会返回
    5. query.setShowFields(RouteSearchV2.ShowFields.POLINE | RouteSearchV2.ShowFields.CITIES |
    6. RouteSearchV2.ShowFields.COST | RouteSearchV2.ShowFields.NAVI | RouteSearchV2.ShowFields.TMCS);
    7. routeSearch.calculateDriveRouteAsyn(query);
    RouteSearchV2.ShowFields 扩展字段
    限定符和类型字段和说明
    static intALL

    设置后添加所有字段

    static intCITIES

    设置后可返回分段途径城市信息

    static intCOST

    设置后可返回方案所需时间及费用成本

    static intNAVI

    设置后可返回详细导航动作指令

    static intPOLINE

    设置后可返回分路段坐标点串,两点间用“,”分隔

    static intTMCS

    设置后可返回分段路况详情

     

     后续还好在地图上大作文章,还会遇到很多问题,将会持续更新下去。

  • 相关阅读:
    蓝桥杯国赛 小数第n位(数论)
    Docker安装并使用Mysql(可用详细)
    I/O多路复用【Linux/网络】(C++实现select、poll和epoll服务器)
    三、Eclipse 修改字符集
    前端加密与解密
    将scut-seg标签转化成通用coco标签
    Dubbo(二):Dubbo 2.x 基础配置 Xml 方式、注解方式 和 高级特性
    开源软件总体使用情况分析
    科技资讯杂志 科技资讯杂志社科技资讯编辑部2022年第17期目录
    解读 | 面向点云车辆检测的三维全卷积网络
  • 原文地址:https://blog.csdn.net/u011212411/article/details/127933110