You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bing Maps API Web Control v8:如何识别选中的路线?

关于Bing Maps API v8 DirectionsManager判断选中路线的方案

嘿,这个问题我之前做项目时刚好碰到过,给你整理两个靠谱的方法:

1. 监听路线选中切换事件

Bing Maps v8的DirectionsManager内置了selectedRouteIndexChanged事件,当用户点击路线列表里的不同路线、或者在地图上切换路线时,这个事件会自动触发。你可以通过绑定这个事件来实时获取选中的路线信息:

// 假设你已经完成了map和directionsManager的初始化
directionsManager.addListener('selectedRouteIndexChanged', function(eventArgs) {
    const selectedIndex = eventArgs.selectedRouteIndex;
    
    // 先判断是否有选中的路线(没有路线时索引为-1)
    if (selectedIndex !== -1) {
        // 根据索引获取选中的路线对象
        const selectedRoute = directionsManager.getRoute(selectedIndex);
        
        // 这里可以获取路线的详细信息,比如总距离、预计耗时
        const routeSummary = selectedRoute.routeSummary;
        console.log(`选中的路线距离:${routeSummary.distance} ${routeSummary.distanceUnit}`);
        console.log(`预计行驶时间:${routeSummary.timeWithTraffic} 秒`);
        
        // 也可以做其他自定义逻辑,比如高亮路线、更新侧边栏信息等
    }
});

2. 主动获取当前选中的路线

如果你不需要实时监听,只是想在某个特定时机(比如用户点击按钮时)获取当前选中的路线,可以直接调用directionsManager.getSelectedRouteIndex()方法拿到选中路线的索引,再通过索引获取路线对象:

// 获取当前选中的路线索引
const currentSelectedIndex = directionsManager.getSelectedRouteIndex();

if (currentSelectedIndex !== -1) {
    const currentRoute = directionsManager.getRoute(currentSelectedIndex);
    // 执行你的业务逻辑
}

需要注意的是,当还没有生成任何路线、或者所有路线都被清除时,getSelectedRouteIndex()会返回-1,所以一定要做这个判断,避免报错。

内容的提问来源于stack exchange,提问作者Michael Witt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 06:52:33