出行路线规划
场景介绍
从5.1.1(19)开始,支持公共交通规划功能。
提供两点之间驾车、步行、骑行和公共交通的路径规划能力。其中驾车路径规划支持添加途经点。
接口说明
以下是路径规划功能相关接口,主要由navi命名空间下的方法提供,更多接口及使用方法请参见接口文档。
| 接口名 | 描述 |
|---|---|
| getDrivingRoutes(params: DrivingRouteParams): Promise<RouteResult> | 驾车路径规划。 |
| getDrivingRoutes(context: common.Context, params: DrivingRouteParams): Promise<RouteResult> | 驾车路径规划。支持传入Context上下文。 |
| getWalkingRoutes(params: RouteParams): Promise<RouteResult> | 步行路径规划。 |
| getWalkingRoutes(context: common.Context, params: RouteParams): Promise<RouteResult> | 步行路径规划。支持传入Context上下文。 |
| getCyclingRoutes(params: RouteParams): Promise<RouteResult> | 骑行路径规划。 |
| getCyclingRoutes(context: common.Context, params: RouteParams): Promise<RouteResult> | 骑行路径规划。支持传入Context上下文。 |
| getTransitRoutes(context: common.Context, params: TransitRouteParams): Promise<TransitRouteResult> | 公共交通规划。支持传入Context上下文。 |
| DrivingRouteParams | 驾车路径规划的参数。 |
| RouteParams | 步行、骑行路径规划的参数。 |
| TransitRouteParams | 公共交通规划的参数。 |
| RouteResult | 路径规划的结果。 |
| TransitRouteResult | 公共交通规划的结果。 |
开发步骤
导入相关模块。
import { navi } from '@kit.MapKit';
import { BusinessError } from '@kit.BasicServicesKit';
驾车路径规划
根据起终点坐标检索符合条件的驾车路径规划方案。支持以下功能:
- 支持一次请求返回多条路线,最多支持3条路线。
- 最多支持5个途经点。
- 支持未来出行规划。
- 支持根据实时路况进行合理路线规划。
- 支持多种路线偏好选择,如时间最短、避免经过收费的公路、避开高速公路、距离优先等。
async testDrivingRoutes() {
let params: navi.DrivingRouteParams = {
// 起点的经纬度
origins: [{
latitude: 31.982129213545843,
longitude: 120.27745557768591
}],
// 终点的经纬度
destination: {
latitude: 31.986129213545843,
longitude: 120.32745557768591
},
// 路径的途经点
waypoints: [{
latitude: 31.967236140819114,
longitude: 120.27142088866847
}, {
latitude: 31.972868002238872,
longitude: 120.2943211817165
}, {
latitude: 31.98469327973332,
longitude: 120.29101107384068
}],
language: 'zh_CN'
};
try {
const result = await navi.getDrivingRoutes(params);
console.info(`Succeeded in getting driving routes. result is ${JSON.stringify(result)}`);
} catch (error) {
const err: BusinessError = error as BusinessError;
console.error(`Failed in getting driving routes. Code is ${err.code}, message is ${err.message}`);
}
}
步行路径规划
根据起终点坐标检索符合条件的步行路径规划方案。支持以下功能:
- 支持直线距离150km以内的步行路径规划能力。
- 融入出行策略(时间最短、避免轮渡)。
async testWalkingRoutes() {
let params: navi.RouteParams = {
// 起点的经纬度
origins: [{
latitude: 39.992281,
longitude: 116.31088
}, {
latitude: 39.996,
longitude: 116.311
}],
// 终点的经纬度
destination: {
latitude: 39.94,
longitude: 116.311
},
language: 'zh_CN'
};
try {
const result = await navi.getWalkingRoutes(params);
console.info(`Succeeded in getting walking routes. result is ${JSON.stringify(result)}`);
} catch (error) {
const err: BusinessError = error as BusinessError;
console.error(`Failed in getting walking routes. Code is ${err.code}, message is ${err.message}`);
}
}
骑行路径规划
根据起终点坐标检索符合条件的骑行路径规划方案。支持以下功能:
- 支持直线距离500km以内的骑行路径规划能力。
- 融入出行策略(时间最短、避免轮渡)。
async testCyclingRoutes() {
let params: navi.RouteParams = {
// 起点的经纬度
origins: [{
latitude: 31.9844102,
longitude: 118.7662537
}],
// 终点的经纬度
destination: {
latitude: 31.9874102,
longitude: 118.7362537
},
language: 'zh_CN'
};
try {
const result = await navi.getCyclingRoutes(params);
console.info(`Succeeded in getting cycling routes. result is ${JSON.stringify(result)}`);
} catch (error) {
const err: BusinessError = error as BusinessError;
console.error(`Failed in getting cycling routes. Code is ${err.code}, message is ${err.message}`);
}
}
公共交通规划
根据起点终点坐标规划道路,从而返回两地之间的多种公共交通中转路线,仅支持中国大陆。
async testGetTransitRoutes() {
let params: navi.TransitRouteParams = {
// 起点经纬度
origin: {
latitude: 39.921619,
longitude: 116.356587
},
// 终点经纬度
destination: {
latitude: 39.94161,
longitude: 116.353621
},
// 设置出发时间为当前时间(单位s)
departureTime: new Date().getTime() / 1000
};
try {
const result = await navi.getTransitRoutes(this.getUIContext().getHostContext(), params);
console.info(`Succeeded in getting transit routes. result is ${JSON.stringify(result)}`);
} catch (error) {
const err: BusinessError = error as BusinessError;
console.error(`Failed in getting transit routes. Code is ${err.code}, message is ${err.message}`);
}
}