目录

批量算路

场景介绍

多个起点到多个终点的批量算路功能,在驾车、步行、骑行模式下,快速批量计算多个起点分别到多个终点的路线距离和耗时。

接口说明

以下是路径规划功能相关接口,主要由navi命名空间下的方法提供,更多接口及使用方法请参见接口文档。

接口名 描述
getDrivingMatrix(params: DrivingMatrixParams): Promise<MatrixResult> 驾车批量算路。
getDrivingMatrix(context: common.Context, params: DrivingMatrixParams): Promise<MatrixResult> 驾车批量算路。支持传入Context上下文。
getWalkingMatrix(params: MatrixParams): Promise<MatrixResult> 步行批量算路。
getWalkingMatrix(context: common.Context, params: MatrixParams): Promise<MatrixResult> 步行批量算路。支持传入Context上下文。
getCyclingMatrix(params: MatrixParams): Promise<MatrixResult> 骑行批量算路。
getCyclingMatrix(context: common.Context, params: MatrixParams): Promise<MatrixResult> 骑行批量算路。支持传入Context上下文。
DrivingMatrixParams 驾车批量算路的参数。
MatrixParams 步行、骑行批量算路的参数。
MatrixResult 批量算路的结果。

开发步骤

导入相关模块。

import { navi } from '@kit.MapKit';
import { BusinessError } from '@kit.BasicServicesKit';

[h2]驾车批量算路

根据多组起终点坐标批量检索符合条件的驾车路径规划方案。支持以下功能:

为保证性能与准确性,单次请求中的起点数量乘以终点数量应小于100。

async testDrivingMatrix() {
  let params: navi.DrivingMatrixParams = {
    // 起点的经纬度
    origins: [{
      latitude: 31.9844,
      longitude: 118.766253
    }, {
      latitude: 31.9644,
      longitude: 118.746253
    }],
    // 终点的经纬度
    destinations: [{
      latitude: 31.9344,
      longitude: 118.706253
    }],
    // 时间预估模型
    trafficMode: 2,
    language: 'zh_CN'
  };
  try {
    const result = await navi.getDrivingMatrix(params);
    console.info(`Succeeded in getting driving matrix. result is ${JSON.stringify(result)}`);
  } catch (error) {
    const err: BusinessError = error as BusinessError;
    console.error(`Failed in getting driving matrix. Code is ${err.code}, message is ${err.message}`);
  }
}

[h2]步行批量算路

根据多组起终点坐标批量检索符合条件的步行路径规划方案。支持以下功能:

为保证性能与准确性,单次请求中的起点数量乘以终点数量应小于100。

async testWalkingMatrix() {
  let params: navi.MatrixParams = {
    // 起点的经纬度
    origins: [
      {
        latitude: 31.9844,
        longitude: 118.766253
      }, {
      latitude: 31.9644,
      longitude: 118.746253
    }],
    // 终点的经纬度
    destinations: [{
      latitude: 31.9344,
      longitude: 118.706253
    }],
    language: 'zh_CN'
  };
  try {
    const result = await navi.getWalkingMatrix(params);
    console.info(`Succeeded in getting walking matrix. result is ${JSON.stringify(result)}`);
  } catch (error) {
    const err: BusinessError = error as BusinessError;
    console.error(`Failed in getting walking matrix. Code is ${err.code}, message is ${err.message}`);
  }
}

[h2]骑行批量算路

根据多组起终点坐标批量检索符合条件的骑行路径规划方案。支持以下功能:

为保证性能与准确性,单次请求中的起点数量乘以终点数量应小于100。

async testCyclingMatrix() {
  let params: navi.MatrixParams = {
    // 起点的经纬度
    origins: [{
      latitude: 31.9844,
      longitude: 118.766253
    }, {
      latitude: 31.9644,
      longitude: 118.746253
    }],
    // 终点的经纬度
    destinations: [{
      latitude: 31.9344,
      longitude: 118.706253
    }],
    language: 'zh_CN'
  };
  try {
    const result = await navi.getCyclingMatrix(params);
    console.info(`Succeeded in getting cycling matrix. result is ${JSON.stringify(result)}`);
  } catch (error) {
    const err: BusinessError = error as BusinessError;
    console.error(`Failed in getting cycling matrix. Code is ${err.code}, message is ${err.message}`);
  }
}