TruckRoutePlan

此类表示一条货车出行方案。不可实例化,通过 TruckRouteResult#getPlan 获得。

与驾车方案的区别:货车方案按路段(step)组织,用 TruckRoutePlan#getLine 取路段, 每个路段带道路名、收费站、分段路况等货车专有信息。

interface TruckRoutePlan {
    getDescription(includeHtml?: boolean): string;
    getDistance(format?: boolean): string | number;
    getDuration(format?: boolean): string | number;
    getLine(i: number): TruckRouteLine;
    getNumLines(): number;
    getNumRoutes(): number;
    getOilCost(): number;
    getRoute(i: number): TruckRouteLine;
    getToll(): number;
    getTollDistance(): number;
    getTotal(i: number): TruckRouteLine;
    plan2LineLayerData(): {
        geoMultiLineData: object;
        trafficConditionData: {
            coordinates: number[][];
            distance: number;
            status: number;
        }[];
    };
    plan2MultiPolyline(): Point[][];
    plan2Polyline(): Point[];
}

方法

  • 返回方案的文字描述。includeHtml 为 false 时返回去掉 HTML 标签的纯文本

    参数类型说明
    includeHtml 可选boolean

    返回值 string

    示例代码1

    document.getElementById('panel').textContent = plan.getDescription(false);
    
  • 返回方案总距离。format 为 false 时返回数值(米),否则返回带单位的字符串

    参数类型说明
    format 可选boolean

    返回值 string | number

    示例代码1

    plan.getDistance(false); // 42500
    plan.getDistance(); // '42.5公里'
  • 返回方案总耗时。format 为 false 时返回数值(秒),否则返回带单位的字符串

    参数类型说明
    format 可选boolean

    返回值 string | number

  • 返回方案中索引指定的路段,索引 0 表示第一段

    参数类型说明
    inumber路段序号

    返回值 TruckRouteLine

    示例代码1

    const line = plan.getLine(0);
    console.log(line.roadName, line.distance, line.points.length);
  • 返回方案包含的路段个数

    返回值 number

  • 返回方案的油费,单位:元

    返回值 number

  • 返回方案过路费,单位:元

    返回值 number

  • 返回方案的收费路段距离,单位:米

    返回值 number

  • 按路况把整条路线拆成 GeoJSON MultiLineString,用于自行绘制 LineLayer。 返回的 trafficConditionData 与 MultiLineString 的 coordinates 按下标一一对应

    返回值 {
        geoMultiLineData: object;
        trafficConditionData: {
            coordinates: number[][];
            distance: number;
            status: number;
        }[];
    }

    • geoMultiLineData: object

      GeoJSON FeatureCollection,只含一个 MultiLineString 要素,坐标为 [lng, lat]

    • trafficConditionData: { coordinates: number[][]; distance: number; status: number }[]

      与 MultiLineString 各子线段同下标的路况信息

    示例代码1

    const { geoMultiLineData, trafficConditionData } = plan.plan2LineLayerData();
    const layer = new BMap.LineLayer({ enablePicked: true });
    map.addLayer(layer);
    layer.setData(geoMultiLineData);
    console.log(trafficConditionData[0].status, trafficConditionData[0].distance);
  • 把整条路线的坐标点串拼成一个数组,可直接交给一条 Polyline 渲染

    返回值 Point[]

    示例代码1

    map.addOverlay(new BMap.Polyline(plan.plan2Polyline(), { strokeWeight: 8 }));