TransitRoute

用于获取公交路线规划方案,支持市内公交和跨城公交。

构造函数

  • 创建公交路线规划实例

    参数类型说明
    locationstring检索区域,可以是地图实例、坐标点或城市名称字符串
    opts 可选TransitRouteOptions可选参数
    属性类型说明
    intercityPolicyIntercityPolicy跨城公交的换乘策略
    onInfoHtmlSetFunction标注气泡内容创建后的回调函数
    onMarkersSetFunction标注添加完成后的回调函数,参数为起终点和换乘站 POI 数组
    onPolylinesSetFunction路线折线添加完成后的回调函数,参数为折线覆盖物数组
    onResultsHtmlSetFunction结果列表创建后的回调函数
    onSearchCompleteFunction检索完成后的回调函数
    pageCapacitynumber每页返回的方案个数,范围 1 - 5
    policyTransitPolicy市内公交的换乘策略
    renderOptionsRenderOptions结果呈现设置
    transitTypePolicyTransitVehicleType跨城公交的交通方式策略

    返回值 TransitRoute

    示例代码1

    // 设置 renderOptions.map,路线和标注自动渲染到地图上
    const transitRoute = new BMap.TransitRoute(map, {
    renderOptions: { map: map, autoViewport: true },
    onSearchComplete(results) {
    console.log('路线已自动绘制到地图');
    },
    });
    transitRoute.search('天安门', '北京西站');

    示例代码2

    // 设置展示面板 + viewportOptions.margins 避免面板遮挡路线聚焦区域
    const transitRoute = new BMap.TransitRoute(map, {
    renderOptions: {
    map: map,
    panel: 'route-panel',
    autoViewport: true,
    viewportOptions: { margins: [20, 20, 20, 300] },
    },
    onSearchComplete(results) {
    console.log('路线已绘制,结果面板已展示');
    },
    });
    transitRoute.search('天安门', '北京西站');

    示例代码3

    // 纯回调用法,不自动渲染到地图
    const transitRoute = new BMap.TransitRoute(map, {
    onSearchComplete(results) {
    if (transitRoute.getStatus() === 0) {
    const plan = results.getPlan(0);
    console.log('公交耗时:', plan.getDuration(true));
    }
    },
    });

方法

  • 清除最近一次检索的结果,同时清除地图上的路线和标注

    返回值 void

  • 禁用自动调整地图视野

    返回值 void

  • 启用自动调整地图视野

    返回值 void

  • 发起公交路线检索

    参数类型说明
    startstring起点,可以是关键字、坐标点或 LocalResultPoi 实例
    endstring终点,可以是关键字、坐标点或 LocalResultPoi 实例

    返回值 void

    示例代码1

    transitRoute.search('天安门', '北京西站');
    transitRoute.search(new BMap.Point(116.391, 39.910), new BMap.Point(116.321, 39.896));
  • 设置气泡打开后的回调函数

    参数类型说明
    callback(poi: LocalResultPoi, html: HTMLElement) => void回调函数

    返回值 void

    示例代码1

    transitRoute.setInfoHtmlSetCallback((poi, html) => {
    console.log(poi.title, html.innerHTML);
    });
  • 设置跨城换乘策略

    参数类型说明
    intercityPolicyIntercityPolicy跨城换乘策略

    返回值 void

    示例代码1

    transitRoute.setIntercityPolicy(BMAP_INTERCITY_POLICY_LEAST_TIME);
    
  • 设置检索区域

    参数类型说明
    locationstring地图实例、坐标点或城市名称字符串

    返回值 void

    示例代码1

    transitRoute.setLocation('北京');
    
  • 设置标注添加完成后的回调函数

    参数类型说明
    callback(pois: LocalResultPoi[]) => void回调函数,参数为起终点和换乘站 POI 数组

    返回值 void

    示例代码1

    transitRoute.setMarkersSetCallback((pois) => {
    pois.forEach(poi => console.log(poi.title));
    });
  • 设置每页返回的方案个数,范围 1 - 5

    参数类型说明
    capacitynumber每页方案数量

    返回值 void

    示例代码1

    transitRoute.setPageCapacity(3);
    
  • 设置城市内换乘策略

    参数类型说明
    policyTransitPolicy城市内换乘策略

    返回值 void

    示例代码1

    transitRoute.setPolicy(BMAP_TRANSIT_POLICY_LEAST_TIME);
    
  • 设置路线折线添加完成后的回调函数

    参数类型说明
    callback(polylines: Polyline[]) => void回调函数,参数为折线覆盖物数组

    返回值 void

    示例代码1

    transitRoute.setPolylinesSetCallback((polylines) => {
    polylines.forEach(pl => pl.setStrokeColor('red'));
    });
  • 设置结果列表创建后的回调函数

    参数类型说明
    callback(container: HTMLElement) => void回调函数

    返回值 void

    示例代码1

    transitRoute.setResultsHtmlSetCallback((container) => {
    document.getElementById('results').appendChild(container);
    });
  • 设置检索结束后的回调函数

    参数类型说明
    callback(results: TransitRouteResult) => void回调函数

    返回值 void

    示例代码1

    transitRoute.setSearchCompleteCallback((results) => {
    console.log('方案数:', results.getNumPlans());
    });
  • 设置跨城交通方式策略

    参数类型说明
    transitTypePolicyTransitVehicleType跨城交通方式策略

    返回值 void

    示例代码1

    transitRoute.setTransitTypePolicy(BMAP_TRANSIT_TYPE_POLICY_TRAIN);