2017-04-04 5 views
0

からポリラインを削除し、これは私が持っているものです。私は1つを作成する前に、私の以前に作成したポリラインを削除しようとしているマップ

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が動作しない、このソリューションは、以前のバージョンで働いていましたしかし、当時私はその方法を持っていなかったのですが、何が間違っていますか?

+0

あなただけ – Nizam

+1

このhttp://stackoverflow.com/questions/14853084/howをチェックアウトし、最後の行を削除しますマップからポリラインをすべて削除する –

+0

[マップからすべてのポリラインを削除する方法]の複製可能性(http://stackoverflow.com/questions/14853084/how-to-remove- all-the-polylines-from-a-map) – Nizam

答えて

0

あなたPolyline Sを保存し、新しいものを追加する前にそれらをクリアするためにListを作成します。

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))); 
    } 
} 
+0

コードが1秒間線を取り除いた後、再度それらを追加します。 – alb

+0

そして、望ましい動作は何ですか? – antonio

+0

前のパスを完全に削除し、最後のパスのみを残すには – alb

関連する問題