android - 如何从 map 中删除所有折线

标签 android google-maps google-maps-android-api-2

关注

How to draw a path between two markers

我不得不在两个标记之间添加很多折线,以形成一条路径。

其中一个标记是可拖动的,假设源是可拖动的。

因此,当用户开始拖动标记时,必须删除先前绘制的路径,并且必须在新源和目标之间绘制一条新路径。

我可以画出新的路径,但是我怎样才能抹去之前的路径呢?

这是绘制路径的方式:

    for (int z = 0; z < list.size() - 1; z++) {
        LatLng src = list.get(z);
        LatLng dest = list.get(z + 1);
        Polyline line = map.addPolyline(new PolylineOptions()
                .add(new LatLng(src.latitude, src.longitude),
                        new LatLng(dest.latitude, dest.longitude))
                .width(2).color(Color.RED).geodesic(true));
    }

我能得到的一个解决方案是

map.clear();

清除所有的折线,标记等。然后重新添加标记,然后绘制路径。

但是一旦我开始拖动,标记就会被清除,因此在 map 上不可见:(

谢谢

最佳答案

在将折线添加到 map 时跟踪它:

Polyline polyline = this.mMap.addPolyline(new PolylineOptions().....);

那么当你想删除它时:

polyline.remove();

如果您有很多折线,只需将它们添加到列表中即可:

List<Polyline> polylines = new ArrayList<Polyline>();

for(....)
{
    polylines.add(this.mMap.addPolyline(new PolylineOptions()....));
}

当你想删除时:

for(Polyline line : polylines)
{
    line.remove();
}

polylines.clear();

关键是保持对折线对象的引用并在每个对象上调用 .remove()。

关于android - 如何从 map 中删除所有折线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14853084/

相关文章:

javascript - Google Maps API 中的地理编码问题

Android 如何在 google map v2 的 fragment 中传递类对象?

javascript - OverlayView如何添加事件监听器?

android - 如何在android map api V2中为标记设置动画?

android - 在 Google Maps Api v2 中添加多个标记

android - 将 Google Play 服务版本添加到您的应用 list ?

java - 将 Fragment 置于堆栈顶部

android ffmpeg halninja av_open_input_file 返回 -2(没有这样的文件或目录)

android - Android Remote 如何与 Google TV 配合使用

java - Java HTTP 请求时出错