跳到主要内容

出行路线规划

场景介绍

从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}`);
}
}