Arc*_*pgc 48 android google-maps google-maps-android-api-2
以下
我不得不在两个标记之间添加许多折线,以形成一条路径.
其中一个标记是可拖动的,让我们说源是可拖动的.
因此,当用户开始拖动标记时,必须擦除先前绘制的路径,并且必须绘制新源和目标之间的新路径.
我能够绘制新路径,但是如何删除上一条路径呢?
这是绘制路径的方式:
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));
}
Run Code Online (Sandbox Code Playgroud)
我能得到的一个解决方案是
map.clear();
要清除所有折线,标记等..并再次添加标记,然后绘制路径.
但是一旦我开始拖动,标记就会被清除,因此在地图上看不到:(
谢谢
Dis*_*Dev 125
将Polyline添加到地图时跟踪Polyline:
Polyline polyline = this.mMap.addPolyline(new PolylineOptions().....);
Run Code Online (Sandbox Code Playgroud)
然后当你想删除它:
polyline.remove();
Run Code Online (Sandbox Code Playgroud)
如果你有很多折线,只需将它们添加到列表中,因为它们放在地图上:
List<Polyline> polylines = new ArrayList<Polyline>();
for(....)
{
polylines.add(this.mMap.addPolyline(new PolylineOptions()....));
}
Run Code Online (Sandbox Code Playgroud)
当你想删除时:
for(Polyline line : polylines)
{
line.remove();
}
polylines.clear();
Run Code Online (Sandbox Code Playgroud)
关键是保持对Polyline对象的引用并在每个对象上调用.remove().
我知道这是一个非常古老的问题,但我注意到这是非常普遍的需要.我找到了另一种方式,我想分享它.
这是基本的想法:
Polyline polylineFinal;
PolylineOptions polylineOptions;
loop {
polylineOptions.add( new LatLng( latitude, longitude ) );
}
polylineOptions.width(2);
polylineOptions.color(Color.RED);
polylineOptions.geodesic(true);
polylineFinal = map.addPolyline (polylineOptions);
Run Code Online (Sandbox Code Playgroud)
Map的"addPolyline"方法返回包含所有点的单个折线.当我需要删除点时,我称之为polylineFinal的"删除"方法.
polylineFinal.remove();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48133 次 |
| 最近记录: |