DrivingRouteLine
此类用于获取驾车路线规划方案。
构造函数
| 构造函数 | 描述 |
|---|---|
| DrivingRouteLine(location: Map | Point | String, opts: DrivingRouteOptions) | 创建一个驾车导航实例,其中location表示检索区域,类型可为地图实例、坐标点或城市名称的字符串。当参数为地图实例时,检索位置由地图当前的中心点确定;当参数为坐标时,检索位置由该点所在位置确定;当参数为城市名称时,检索会在该城市内进行 |
DrivingRouteOptions
| 属性 | 类型 | 描述 |
|---|---|---|
| map | BMapGL | 地图实例 |
| policy | DrivingPolicy | 路线规划策略策略 |
| onSearchComplete | Function | 检索完成后的回调函数。参数: results: DrivingRouteResult |
| onMarkersSet | Function | 标注添加完成后的回调函数。 |
| onPolylinesSet | Function | 折线添加完成后的回调函数。 |
DrivingRouteResult
| 属性 | 类型 | 描述 |
|---|---|---|
| waypoints | Array<Point> | string | 途经点坐标点数组或坐标纬度经度拼接字符串,仅DrivingRouteLine支持 |
| policy | DrivingPolicy | 驾车导航策略 |
方法
| 方法 | 返回值 | 描述 |
|---|---|---|
| search(start: Point | LocalResultPoi, end: Point | LocalResultPoi, { waypoints: Array<Point> | string }) | none | 发起检索。 start: 起点,参数可以是坐标点和LocalSearchPoi实例。 end: 终点,参数可以是坐标点或LocalSearchPoi实例, waypoings:坐标点数组或坐标纬度经度拼接字符串。如:'39.87920464090217,116.49257333444989|39.87806279099342,116.49218746174857' |
| getResults() | DrivingRouteResult | 返回最近一次检索的结果 |
| clearResults() | none | 清除最近一次检索的结果 |
| enableAutoViewport() | none | 启用自动调整地图层级,当指定了搜索结果所展现的地图时有效 |
| disableAutoViewport() | none | 禁用自动调整地图层级 |
| setPolicy() | none | 设置路线规划策略,参数为策略常量 |
| setSearchCompleteCallback(callback: Function) | none | 设置检索结束后的回调函数。 参数: results: DrivingRouteResult |
| setMarkersSetCallback(callback: Function) | none | 设置添加标注后的回调函数。 |
| setPolylinesSetCallback(callback: Function) | none | 设置添加路线后的回调函数。 |
| getStatus() | StatusCodes | 返回状态码 |
| toString() | String | 返回类型说明 |
| showRoute() | none | 展示路线 |
| hideRoute() | none | 隐藏路线 |
示例
ts
// 创建驾车导航实例
const drivingRouteLine = new BMapGL.DrivingRouteLine(map, {
map: map,
policy: BMapGL.DrivingPolicy.BMAP_DRIVING_POLICY_DEFAULT,
onSearchComplete: (results: BMapGL.DrivingRouteResult) => {
// 获取第一条方案
const plan = results.getPlan(0);
console.log('总距离:', plan.getDistance());
console.log('总时间:', plan.getDuration());
}
});
// 设置起终点和途经点
const start = new BMapGL.Point(116.404, 39.915);
const end = new BMapGL.Point(116.404, 39.915);
const waypoints = [
new BMapGL.Point(116.404, 39.915),
new BMapGL.Point(116.404, 39.915)
];
// 发起检索
drivingRouteLine.search(start, end, { waypoints });
// 使用字符串形式的途经点
const waypointsStr = '39.87920464090217,116.49257333444989|39.87806279099342,116.49218746174857';
drivingRouteLine.search(start, end, { waypoints: waypointsStr });
// 展示/隐藏路线
drivingRouteLine.showRoute();
drivingRouteLine.hideRoute();