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 驾车路径规划运行截图。

Android 驾车出行路线规划_第1张图片

RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(startLatLon, latLonPoint);
// fromAndTo包含路径规划的起点和终点,drivingMode表示驾车模式 
// drivingMode表示路径规划的策略,可选,默认为0-速度优先;
// 第三个参数表示途经点(最多支持6个),第四个参数表示避让区域(最多支持32个),第五个参数表示避让道路 
DriveRouteQuery query = new DriveRouteQuery(fromAndTo, drivingMode, null, null, "");

//使用类 RouteSearch 的 calculateRideRouteAsyn(RideRouteQuery query) 
//方法进行骑行规划路径计算。
routeSearch.calculateDriveRouteAsyn(query)

//接收数据
public void onDriveRouteSearched(DriveRouteResult result, int rCode) {  
    final DrivePath drivePath = result.getPaths().get(0);//获取规划出的第一条路线方案。
    List drivePaths = drivePath.getSteps();//返回驾车规划方案的路段列表。
    for (DriveStep step : drivePaths) {
        List latlonPoints = step.getPolyline();//返回驾车路段的坐标点集合。
        List tmclist = step.getTMCs();//获取搜索返回的路径规划交通拥堵信息。
        tmcs.addAll(tmclist);
    }
}  

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

calculateRideRouteAsyn(RouteSearch.RideRouteQuery rideQuery)

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

解决:

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

RouteSearchV2.FromAndTo fromAndTo = new RouteSearchV2.FromAndTo(startLatLon, latLonPoint);

RouteSearchV2.DriveRouteQuery query = new RouteSearchV2.DriveRouteQuery(fromAndTo, RouteSearchV2.DrivingStrategy.DEFAULT, null,
                null, "");
//不加此行代码,一些数据不会返回
query.setShowFields(RouteSearchV2.ShowFields.POLINE | RouteSearchV2.ShowFields.CITIES |
                RouteSearchV2.ShowFields.COST | RouteSearchV2.ShowFields.NAVI | RouteSearchV2.ShowFields.TMCS);

routeSearch.calculateDriveRouteAsyn(query);
RouteSearchV2.ShowFields 扩展字段
限定符和类型 字段和说明
static int ALL

设置后添加所有字段

static int CITIES

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

static int COST

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

static int NAVI

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

static int POLINE

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

static int TMCS

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

Android 驾车出行路线规划_第2张图片 

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

你可能感兴趣的:(Android,RouteSearchV2,RouteSearch,路线规划,getTMCs)