驾车出行路线规划 最后更新时间: 2026年01月03日
驾车出行路线规划
驾车路径规划可以根据起终点和驾车路线的数据,使用 DrivingRouteOverlay 画出驾车路线图层,包括起终点和转弯点。另外也可以自定义起终点和驾车转弯点的图标。
注意:地图SDK V1.0.0版本开始,SDK不再提供 com.amap.api.maps.overlay 包下的 overlay,已在官方demo中开源。
第 1 步,初始化 RouteSearch 对象
routeSearch = new RouteSearch(this.mContext)
第 2 步,设置数据回调监听器
this.mRouteSearch.setRouteSearchListener(this.onRouteSearchListener)第 3 步,设置搜索参数
通过 DriveRouteQuery(fromAndTo: FromAndTo, mode: number, passedByPoints: ArrayList<LatLonPoint>, avoidpolygons: ArrayList<ArrayList<LatLonPoint>>, avoidRoad: string) 设置搜索条件,方法对应的参数说明如下:
- fromAndTo,路径的起点终点;
- mode,路径规划的策略,可选,默认为0-速度优先;
- passedByPoints,途经点,可选;
- avoidpolygons,避让区域,可选,支持32个避让区域,每个区域最多可有16个顶点。如果是四边形则有4个坐标点,如果是五边形则有5个坐标点。
- avoidRoad,避让道路,只支持一条避让道路,避让区域和避让道路同时设置,只有避让道路生效。
// fromAndTo包含路径规划的起点和终点,drivingMode表示驾车模式
// 第三个参数表示途经点(最多支持6个),第四个参数表示避让区域(最多支持32个),第五个参数表示避让道路
const query = new DriveRouteQuery(fromAndTo, RouteSearch.DrivingDefault, undefined,
undefined, ""); // 第一个参数表示路径规划的起点和终点,第二个参数表示驾车模式,第三个参数表示途经点,第四个参数表示避让区域,第五个参数表示避让道路
第 4 步,发送请求
使用类 RouteSearch 的 calculateDriveRouteAsyn(query: DriveRouteQuery) 方法进行骑行规划路径计算。
this.mRouteSearch.calculateDriveRouteAsyn(query);
第 5 步,接收数据
在 OnRouteSearchListener 接口回调方法 onDriveRouteSearched(result: DriveRouteResult | undefined, rCode: number): DriveRouteResult 处理驾车规划路径结果。返回的信息中包括:路线的距离、高速费用(仅针对7座以下轿车)、路况情况等等。
说明:
1)可以在回调中解析 result,获取驾车的路径。
2)result.getPaths()可以获取到 DrivePath 列表,驾车路径的详细信息可参考 DrivePath 类。
3)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)
private onRouteSearchListener: OnRouteSearchListener = {
onDriveRouteSearched: (result: DriveRouteResult | undefined, errorCode: number): void => {
//todo: 处理result驾车路径信息
},
onRideRouteSearched: (result: RideRouteResult, errorCode: number): void => {
},
onWalkRouteSearched: (result: WalkRouteResult, errorCode: number) => {
},
onBusRouteSearched: (result: BusRouteResult, errorCode: number): void => {
}
}驾车出行路线规划V2
驾车路径规划可以根据起终点和驾车路线的数据,使用 DrivingRouteOverlay 画出驾车路线图层,包括起终点和转弯点。另外也可以自定义起终点和驾车转弯点的图标。
注意:地图SDK V1.0.0版本开始,SDK不再提供 com.amap.api.maps.overlay 包下的 overlay,已在官方demo中开源。
第 1 步,初始化 RouteSearchV2 对象
routeSearch = new RouteSearchV2(this.mContext)
第 2 步,设置数据回调监听器
this.mRouteSearch.setRouteSearchListener(this.onRouteSearchListener)
第 3 步,设置搜索参数
通过 DriveRouteQueryV2(fromAndTo: FromAndTo, mode: number, passedByPoints: ArrayList<LatLonPoint>, avoidpolygons: ArrayList<ArrayList<LatLonPoint>>, avoidRoad: string) 设置搜索条件,方法对应的参数说明如下:
- fromAndTo,路径的起点终点;
- mode,路径规划的策略,可选,默认为0-速度优先;
- passedByPoints,途经点,可选;
- avoidpolygons,避让区域,可选,支持32个避让区域,每个区域最多可有16个顶点。如果是四边形则有4个坐标点,如果是五边形则有5个坐标点。
- avoidRoad,避让道路,只支持一条避让道路,避让区域和避让道路同时设置,只有避让道路生效。
// fromAndTo包含路径规划的起点和终点,drivingMode表示驾车模式
// 第三个参数表示途经点(最多支持6个),第四个参数表示避让区域(最多支持32个),第五个参数表示避让道路
const fromAndTo = new FromAndTo(this.mStartPoint, this.mEndPoint);
const query = new DriveRouteQueryV2(fromAndTo, DrivingStrategy.DEFAULT.getValue(), undefined,
undefined, ""); // 第一个参数表示路径规划的起点和终点,第二个参数表示驾车模式,第三个参数表示途经点,第四个参数表示避让区域,第五个参数表示避让道路
query.setShowFields(0b0010101)
第 4 步,发送请求
使用类 RouteSearch 的 calculateRideRouteAsyn(RideRouteQuery query) 方法进行骑行规划路径计算。
this.mRouteSearch.calculateDriveRouteAsyn(query);
第 5 步,接收数据
在 RouteSearch.OnRouteSearchListener 接口回调方法 void onDriveRouteSearched(DriveRouteResult result, int rCode) 处理驾车规划路径结果。返回的信息中包括:路线的距离、高速费用(仅针对7座以下轿车)、路况情况等等。
说明:
1)可以在回调中解析 result,获取驾车的路径。
2)result.getPaths()可以获取到 DrivePath 列表,驾车路径的详细信息可参考 DrivePath 类。
3)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)
private onRouteSearchListener: OnRouteSearchListenerV2 = {
onDriveRouteSearched: (result: DriveRouteResultV2 | undefined, errorCode: number): void => {
//todo: 处理result驾车路径信息,详情参考demo
},
onRideRouteSearched: (result: RideRouteResultV2, errorCode: number): void => {
},
onWalkRouteSearched: (result: WalkRouteResultV2, errorCode: number) => {
},
onBusRouteSearched: (): void => {
}
}