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 17:33:53 浏览: 57
可能的原因有很多,需要进一步排查。以下是一些可能导致添加途经点失败的原因:
1. 路线规划出错,无法添加途经点。您可以尝试重新规划路线,或者检查您添加的途经点是否正确。
2. 调用添加途经点的方法时,路线尚未规划完成。您可以等待一段时间,直到路线规划完成后再添加途经点。
3. 途经点和起点/终点存在重叠。您可以检查您添加的途经点是否和起点/终点在同一位置。
4. 途经点的坐标格式不正确。您可以检查您添加的途经点的坐标格式是否正确。
5. 您的代码逻辑有误。您可以检查您的代码逻辑,看看是否存在其他可能导致添加途经点失败的问题。
希望以上解答能够帮到您,如果还有问题,请随时提出。
相关问题
BaiduNaviInitHelper.setCanSpeak(false); BaiduNaviManagerFactory.getRouteGuideManager().deleteViaNodes(); // 过滤并删除包含关键字的数据 boolean removed = routeList.removeIf(node -> node.get(0).getName().contains(keyWord)); android.util.Log.d("TAGAA", "deleteWayPoint: 删除了吗? "+routeList); if (removed && routeList != null) { List<BNRoutePlanNode> list = new ArrayList<>(); for (List<BNRoutePlanNode> planNodeList : routeList) { //planNodeList获取0是因为list中只有一条数据 list.add(planNodeList.get(0)); } BaiduNaviManagerFactory.getRouteGuideManager().addViaNodes(list); BaiduNaviManagerFactory.getCommonSettingManager().setViaPointCount(4); showFullView(); isWayPoint = true; } 删除某个途经点时,途径点并没有删除,是怎么回事
根据代码,首先关闭了语音提示,然后使用`removeIf()`方法过滤并删除包含关键字的数据,如果删除成功,就将剩余的途经点添加到导航管理器的途经点列表中,并设置途经点数量为4。从代码中看,删除途经点的操作似乎是正确的,但是我无法判断具体的问题出在哪里。建议检查一下代码中的逻辑,以及途经点的数据是否正确。你可以在删除途经点时打印一些调试信息,以便更好地理解问题所在。
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)); } BaiduNaviManagerFactory.getRouteGuideManager().addViaNodes(list); BaiduNaviManagerFactory.getCommonSettingManager().setViaPointCount(4); showFullView(); isWayPoint = true; } else { speakWithoutFollowStep("抱歉,当前没有" + keyWord + "途经点"); } 有2个途经点,我删除某个后, 删除途径点和添加途经点没有同时执行,在地图上怎么还是显示2个途经点,是怎么回事?
根据代码来看,当成功删除一个途经点后,会执行删除途径点和添加途经点的代码。但是在添加途经点的代码中,使用了一个固定的参数 4,而不是当前途经点的数量,这可能是导致问题的原因之一。建议你在添加途经点的代码中使用当前途经点的数量,也就是 `list.size()`。
另外,你可以检查一下 `routeList` 中的途经点是否确实被成功删除了,如果没有被成功删除,那么后续的删除途径点和添加途经点的代码就不会执行。
阅读全文