2013-08-20 113 views
2

我畫使用標記拖動谷歌地圖V2折線,這是我的代碼刪除在谷歌地圖V2具體的折線

int startDraw = 1; 
Polyline polyline; 
List<LatLng> lineCordinates = new ArrayList<LatLng>(); 
List<Polyline> polylines = new ArrayList<Polyline>(); 

@Override 
public void onMarkerDrag(Marker marker) { 
    // startDraw == 0 --> stop draw 
    // startDraw == 1 --> start draw 

if (startDraw == 1) { 

    Integer markerId = markerMapHash.get(marker); 

    if (markerId == null) { 
     markerId = 1; 
    } 

    if (markerId == 1) { 
     lineCordinates.add(marker.getPosition()); 

    } 


    for (int i = 0; i < lineCordinates.size(); i++) { 

     polyline = myMap.addPolyline(new PolylineOptions() 
     .addAll(lineCordinates) 
     .width(lineWidth) 
     .color(lineColor)); 

     polylines.add(polyline); 

    } 
    } 

    } 


@Override 
public void onMarkerDragEnd(Marker marker) { 
    lineCordinates.clear(); 
    if (startDraw == 1) { 
     startDraw = 0; 
    }else{ 
     startDraw = 1; 
    } 

    } 

,並刪除所有折線,這是一個按鈕的onClick

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

現在我想刪除一個特定的折線,我該怎麼做? 希望任何人都可以幫助我。 在此先感謝。

+0

定義「特定折線」。 –

回答

5

我從未與此代碼混淆過,但我認爲您只需檢查line是否與您正在查找的特定多段線匹配,然後將其刪除。類似這樣的:

for(Polyline line : polylines) 
{ 
    if (isSpecificPolyline(line)) 
     line.remove(); 
} 
+0

使用'=='比較對象幾乎不會有任何好處。對於Google Maps Android API v2來說,這不僅僅是事實,因爲這些對象是代理服務器,而且經常發生兩個單獨的對象在不同進程中是同一實際對象的情況。 –