boolean removed = routeList.removeIf(node -> node.get(0).getName().contains(keyWord)); if (removed) { BaiduNaviInitHelper.setCanSpeak(false); //删除所有途经点 BaiduNaviManagerFactory.getRouteGuideManager().deleteViaNodes(); try { //这里休眠2秒是要避免和删除途经点同时操作 Thread.sleep(2000); List<BNRoutePlanNode> list = new ArrayList<>(); for (List<BNRoutePlanNode> planNodeList : routeList) { //planNodeList获取0是因为list中只有一条数据 list.add(planNodeList.get(0)); } android.util.Log.d("TAGAA", "deleteWayPoint: 数据 "+routeList+"\n"+list); //添加途经点 BaiduNaviManagerFactory.getRouteGuideManager().addViaNodes(list); BaiduNaviManagerFactory.getCommonSettingManager().setViaPointCount(routeList.size()); } catch (InterruptedException e) { e.printStackTrace(); } showFullView(); isWayPoint = true; 添加途经点没有添加上是什么原因?
时间: 2024-02-10 13:33:53 浏览: 31
可能的原因有很多,需要进一步排查。以下是一些可能导致添加途经点失败的原因:
1. 路线规划出错,无法添加途经点。您可以尝试重新规划路线,或者检查您添加的途经点是否正确。
2. 调用添加途经点的方法时,路线尚未规划完成。您可以等待一段时间,直到路线规划完成后再添加途经点。
3. 途经点和起点/终点存在重叠。您可以检查您添加的途经点是否和起点/终点在同一位置。
4. 途经点的坐标格式不正确。您可以检查您添加的途经点的坐标格式是否正确。
5. 您的代码逻辑有误。您可以检查您的代码逻辑,看看是否存在其他可能导致添加途经点失败的问题。
希望以上解答能够帮到您,如果还有问题,请随时提出。
相关问题
boolean removed = routeList.removeIf(node -> node.get(0).getName().contains(keyWord)); if (removed) { BaiduNaviInitHelper.setCanSpeak(false); BaiduNaviManagerFactory.getRouteGuideManager().deleteViaNodes(); List<BNRoutePlanNode> list = new ArrayList<>(); for (List<BNRoutePlanNode> planNodeList : routeList) { //planNodeList获取0是因为list中只有一条数据 list.add(planNodeList.get(0)); } android.util.Log.d("TAGAA", "deleteWayPoint: sdhwaio 核对哇哈 " + list); BaiduNaviManagerFactory.getRouteGuideManager().addViaNodes(list); BaiduNaviManagerFactory.getCommonSettingManager().setViaPointCount(4); showFullView(); isWayPoint = false; } else { speakWithoutFollowStep("抱歉,当前没有" + keyWord + "途经点"); } 这个删除和添加是同时执行的吗?先删除再添加,帮我改一下代码
可以使用以下代码实现先删除再添加的功能:
```
boolean removed = routeList.removeIf(node -> node.get(0).getName().contains(keyWord));
if (removed) {
List<BNRoutePlanNode> list = new ArrayList<>();
for (List<BNRoutePlanNode> planNodeList : routeList) {
list.add(planNodeList.get(0));
}
BaiduNaviManagerFactory.getRouteGuideManager().setViaNodes(list);
BaiduNaviManagerFactory.getCommonSettingManager().setViaPointCount(4);
BaiduNaviInitHelper.setCanSpeak(false);
BaiduNaviManagerFactory.getRouteGuideManager().deleteViaNodes();
BaiduNaviManagerFactory.getRouteGuideManager().addViaNodes(list);
showFullView();
isWayPoint = false;
} else {
speakWithoutFollowStep("抱歉,当前没有" + keyWord + "途经点");
}
```
在这段代码中,首先执行了删除操作,然后将剩余的途经点用一个列表保存起来。接着,使用 `setViaNodes()` 方法将剩余的途经点重新添加到导航 SDK 中,同时设置途经点的数量为 4。最后,关闭语音播报、删除所有途经点、重新添加途经点、显示全览图,并设置 `isWayPoint` 为 false。
protected List<List<BNRoutePlanNode>> routeList = new ArrayList<>(); if (keyWord != null) { routeList.removeIf(node -> node.get(0).getName().equals(keyWord)); }帮我写一下如果这个集合中有包含keyWord的数据就删除,如果没有就提示
可以使用Java 8的Stream API和Lambda表达式来实现这个功能。代码如下:
```
if (keyWord != null) {
// 使用Stream API过滤并删除包含关键字的数据
boolean removed = routeList.removeIf(node -> node.stream().anyMatch(n -> n.getName().contains(keyWord)));
// 如果没有数据被删除,则提示
if (!removed) {
System.out.println("The list does not contain any data with the keyword.");
}
}
```
解释一下上面的代码:
- `removeIf()` 方法使用传递的 Lambda 表达式对集合中的每个元素进行过滤,并删除符合条件的元素。在这里,我们使用 `node.stream().anyMatch(n -> n.getName().contains(keyWord))` 来判断是否包含关键字。`node.stream()` 将 `List<BNRoutePlanNode>` 转换为 Stream,`anyMatch()` 方法判断其中是否有任意一个元素的 `name` 包含关键字。
- `removeIf()` 方法返回一个布尔值,表示是否有元素被删除。如果没有数据被删除,则说明集合中没有包含关键字的数据,需要提示用户。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![.pdf](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)