TransitRoute
构造函数
创建公交路线规划实例
参数 类型 说明 locationstring | Point | Map检索区域,可以是地图实例、坐标点或城市名称字符串 opts可选TransitRouteOptions可选参数 属性 类型 说明 enableTrafficboolean是否显示实时路况 intercityPolicyIntercityPolicy跨城公交的换乘策略 onInfoHtmlSetFunction标注气泡内容创建后的回调函数 onMarkersSetFunction标注添加完成后的回调函数,参数为起终点和换乘站 POI 数组 onPolylinesSetFunction路线折线添加完成后的回调函数,参数为折线覆盖物数组 onResultsHtmlSetFunction结果列表创建后的回调函数 onSearchCompleteFunction检索完成后的回调函数 pageCapacitynumber每页返回的方案个数,范围 1 - 5 policyTransitPolicy市内公交的换乘策略 renderOptionsRouteRenderOptions结果呈现设置 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
返回最近一次检索的结果
返回值 TransitRouteResult
返回状态码
返回值 ServiceStatus
发起公交路线检索
参数 类型 说明 startstring | Point | LocalResultPoi起点,可以是关键字、坐标点或 LocalResultPoi 实例 endstring | Point | LocalResultPoi终点,可以是关键字、坐标点或 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 | Point | Map地图实例、坐标点或城市名称字符串 返回值 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'));
});
设置路线折线的样式,配置项会增量合并到 renderOptions.polylineStyle, 并立即刷新已经绘制在地图上的折线,无需重新检索
参数 类型 说明 styleRoutePolylineStyle折线样式配置 返回值 void
示例代码1
transitRoute.setPolylineStyle({
transit: { strokeColor: '#1677ff', strokeWeight: 8 },
walking: { strokeColor: '#52c41a' },
// 关闭公交折线内部的白色装饰线
decorate: null,
});
设置结果列表创建后的回调函数
参数 类型 说明 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);
公交路线规划服务类,用于获取两点间的公交出行方案,支持地铁、市内公交和跨城公交(飞机、火车、大巴)换乘方案。 适用于地图应用中的公交出行导航、多方案对比展示等场景,可将检索结果自动渲染为地图上的路线和标注,或通过面板展示详细方案列表。