【问题标题】:Remove polyline from map从地图中删除折线
【发布时间】:2017-04-04 11:17:26
【问题描述】:

我正在尝试在创建之前删除我之前创建的折线,这就是我所拥有的:

    protected void fazerCaminho(ArrayList<HashMap<String, String>> listaPolylines) {
    if (line == null) {
        for (Map polyline : listaPolylines) {
            List<LatLng> decodedPath = PolyUtil.decode((String) polyline.get("points"));
            line = mMap.addPolyline(new PolylineOptions()
                    .width(3)
                    .color(Color.rgb(25, 151, 152))
                    .geodesic(true)
                    .addAll(decodedPath));
        }

    } else {
        line.remove();
        for (Map polyline : listaPolylines) {
            List<LatLng> decodedPath = PolyUtil.decode((String) polyline.get("points"));
            line = mMap.addPolyline(new PolylineOptions()
                    .width(3)
                    .color(Color.rgb(25, 151, 152))
                    .geodesic(true)
                    .addAll(decodedPath));
        }
    }
}

line.remove 不起作用,这个解决方案在以前的版本上有效,但当时我没有 for 方法,我做错了什么?

【问题讨论】:

标签: java android google-maps polyline


【解决方案1】:

创建一个List 来存储您的Polylines 并在添加新的之前清除它们:

private List<Polyline> lines = new ArrayList<>();

// ...

private void removeLines() {
    for (Polyline line : lines) {
        line.remove();
    }
    lines.clear();
}

// ...

protected void fazerCaminho(ArrayList<HashMap<String, String>> listaPolylines) {
    removeLines();

    for (Map polyline : listaPolylines) {
        List<LatLng> decodedPath = PolyUtil.decode((String) polyline.get("points"));
        lines.add(mMap.addPolyline(new PolylineOptions()
                .width(3)
                .color(Color.rgb(25, 151, 152))
                .geodesic(true)
                .addAll(decodedPath)));
    }
}

【讨论】:

  • 您的代码删除了大约一秒钟的行,然后重新添加它们
  • 理想的行为是什么?
  • 完全删除之前的路径,只保留最后一个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2013-01-28
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多