Java 从地图中删除多段线
我正在尝试在创建多段线之前删除以前创建的多段线,这是我所拥有的:Java 从地图中删除多段线,java,android,google-maps,polyline,Java,Android,Google Maps,Polyline,我正在尝试在创建多段线之前删除以前创建的多段线,这是我所拥有的: protected void fazerCaminho(ArrayList<HashMap<String, String>> listaPolylines) { if (line == null) { for (Map polyline : listaPolylines) { List<LatLng> decodedPath = PolyU
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));
}
}
}
受保护的void fazerCaminho(ArrayList listaPolylines){
如果(行==null){
用于(地图多段线:listaPolylines){
List decodedPath=PolyUtil.decode((字符串)polyline.get(“点”);
line=mMap.addPolyline(新的PolylineOptions()
.宽度(3)
.color(color.rgb(25151152))
.测地线(真)
.addAll(decodedPath));
}
}否则{
行。删除();
用于(地图多段线:listaPolylines){
List decodedPath=PolyUtil.decode((字符串)polyline.get(“点”);
line=mMap.addPolyline(新的PolylineOptions()
.宽度(3)
.color(color.rgb(25151152))
.测地线(真)
.addAll(decodedPath));
}
}
}
line.remove不起作用,此解决方案在以前的版本中起作用,但当时我没有for方法,我做错了什么?创建一个
列表来存储您的多段线
并在添加新的多段线之前清除它们:
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)));
}
}
private List line=new ArrayList();
// ...
私有无效删除(){
用于(多段线:直线){
行。删除();
}
行。清除();
}
// ...
受保护的void fazerCaminho(ArrayList listaPolylines){
removeLines();
用于(地图多段线:listaPolylines){
List decodedPath=PolyUtil.decode((字符串)polyline.get(“点”);
lines.add(mMap.addPolyline(新的PolylineOptions)()
.宽度(3)
.color(color.rgb(25151152))
.测地线(真)
.addAll(decodedPath));
}
}
您只删除最后一行检查此可能的代码副本删除这些行大约一秒钟,然后重新添加它们,您希望的行为是什么?完全删除前一条路径,只保留最后一条路径