BaiduNaviManagerFactory.getRouteResultManager().setOnThroughNodeClickListener(new IBNRouteResultManager.IThroughNodeClickedListener() { @Override public void onThroughNodeClicked(int i, BNRoutePlanNode bnRoutePlanNode) { } }); 这个是百度导航sdk中的途径点的点击事件,我想在导航行驶过程中点击途经点并删除它,应该在导航的哪个回调中调用?
时间: 2024-03-01 21:52:12 浏览: 20
要在导航行驶过程中点击途经点并删除它,可以在导航状态监听器 `BNaviStatusListener` 的 `onNaviRoutePlanSuccess` 方法中调用 `setOnThroughNodeClickListener` 方法设置途经点点击监听器,然后在 `onThroughNodeClicked` 方法中删除途经点。具体实现如下:
```java
BaiduNaviManagerFactory.getRouteResultManager().setOnThroughNodeClickListener(new IBNRouteResultManager.IThroughNodeClickedListener() {
@Override
public void onThroughNodeClicked(int index, BNRoutePlanNode node) {
// 删除途经点
BaiduNaviManagerFactory.getRoutePlanManager().removeViaNode(index);
// 刷新路线
BaiduNaviManagerFactory.getRoutePlanManager().cruise();
}
});
BNaviStatusListener navListener = new BNaviStatusListener() {
@Override
public void onNaviRoutePlanSuccess() {
// 导航路线规划成功回调
// 设置途经点点击监听器
BaiduNaviManagerFactory.getRouteResultManager().setOnThroughNodeClickListener(new IBNRouteResultManager.IThroughNodeClickedListener() {
@Override
public void onThroughNodeClicked(int index, BNRoutePlanNode node) {
// 删除途经点
BaiduNaviManagerFactory.getRoutePlanManager().removeViaNode(index);
// 刷新路线
BaiduNaviManagerFactory.getRoutePlanManager().cruise();
}
});
}
};
BaiduNaviManagerFactory.getRoutePlanManager().setNaviStatusListener(navListener);
```
这样,在导航行驶过程中点击途经点就会触发 `onThroughNodeClicked` 方法,从而删除途经点并刷新路线。