2016-11-30 103 views
1

我在地圖上繪製了一個像動畫一樣的polyline。如下所示。Android從地圖v2中移除折線

m_handler = new Handler(); 
     m_handlerTask = new Runnable() { 
      @Override 
      public void run() { 
       //line.remove(); 
       if (t < pointsPoly.size() - 1) { 

        LatLng src = pointsPoly.get(t); 
        LatLng dest = pointsPoly.get(t + 1); 
        Polyline lineAnimation = googleMap.addPolyline(new PolylineOptions() 
          .add(new LatLng(src.latitude, src.longitude), 
            new LatLng(dest.latitude, dest.longitude)) 
          .width(10).color(Color.DKGRAY).geodesic(true)); 
        t++; 

       } else { 
        t = 0; 

       } 
       m_handler.postDelayed(m_handlerTask, polyLineTimer); 
      } 
     }; 
     m_handler.post(m_handlerTask); 

我該如何刪除polyline?我不想clearMap()。 我試過lineAnimation.remove();但它不工作。

+0

您確定沒有多次添加該折線嗎?所以當你試圖刪除它時,下面還有一個讓你覺得它從未被刪除的東西? – Jaythaking

+0

我試圖將它們存儲在一個ArrayList中,每次創建一個,然後當需要刪除時,遍歷該數組並刪除它們... – Jaythaking

+0

@jaythakin你可以給我一個添加和刪除的例子。 – user3555472

回答

3

你只是做以下但不是結果賦值給一個變量,把它放在一個ArrayList ...

ArrayList<Polyline> lines = new ArrayList<>(); 
    //Add line to map 
    lines.add(mMap.addPolyline(new PolylineOptions() 
       .add(new LatLng(location.getLatitude(), location.getLongitude()), 
         new LatLng(this.destinationLatitude, this.destinationLongitude)) 
       .width(1) 
       .color(Color.DKGRAY)); 

    //Remove the same line from map 
    line.remove(); 

從地圖中刪除此折線。在多段線已被移除後,其所有方法的行爲都是不確定的。

+0

感謝您的快速回復。我不知道如何在arraylist中添加多段線並在地圖上顯示:(。我需要那個解決方案:( – user3555472

+0

我編輯了答案... – Jaythaking

+0

非常感謝你.......我明天會試試並且會讓你知道。再次感謝你的人 – user3555472