但是void addViaNodes(List<BNRoutePlanNode> var1)方法每次都添加一个list,添加第二次的话list有两条数据,它还会算上第一次添加的list数据,从而导致途径点变成 1和3,没有途经点2
时间: 2024-02-23 11:59:22 浏览: 53
vue 解决addRoutes多次添加路由重复的操作
5星 · 资源好评率100%
你说得对,我理解有误。那么,你可以在每次添加途径点之前,先将已有的途径点清除,然后再添加新的途径点。具体代码如下:
```
protected List<BNRoutePlanNode> list = new ArrayList<>();
@Override
protected void addWaypoint(PoiInfo poiInfo) {
BNRoutePlanNode build = new BNRoutePlanNode.Builder()
.latitude(poiInfo.getLocation().latitude)
.longitude(poiInfo.getLocation().longitude)
.name(poiInfo.name)
.description(poiInfo.name)
.build();
if (!list.contains(build)) {
list.clear(); // 清除已有的途径点
list.add(build); // 添加新的途径点
BaiduNaviManagerFactory.getRouteGuideManager().setViaNodes(list); // 设置途径点
}
//设置最大途径点的个数(支持4~18个)
BaiduNaviManagerFactory.getCommonSettingManager().setViaPointCount(4);
mAllPoi.clear();
setSessionOver(true);
}
```
这样,每次添加途径点时,都会先清除已有的途径点,然后再添加新的途径点,避免了之前添加的途径点被重复计算的问题。
阅读全文