2013-02-06 195 views
0

我需要從ArrayList每次發現一個新的LatLng谷歌地圖上的多段線,其顏色是根據當前速度的百分比,以車輛的最大速度。谷歌地圖api v2多義線android

我使用下面的代碼爲:

for (int i = 0; i < Route.speeds.size(); i++) 
     { 
      colorOfGraph = graphColor(Route.speeds.get(i), maxSpeed); 
      polylineOptions = new PolylineOptions().addAll(Route.points).width(5).color(colorOfGraph); 
      Polyline polyline = googleMap.addPolyline(polylineOptions); 
      Route.paths.add(polyline); 
     } 

其中Route.speeds是具有保持在其中的所有速度的ArrayListmaxspeed是這改變了車輛的最大速度時的車輛變化maxspeed和多段線的顏色根據最大速度的百分比,隨着最大速度的增加,以前多段線的顏色也應該改變,所以我需要再次繪製它。所以我的問題是如何在每次獲得新的latlng時重新繪製多段線。

請大家幫助我解決這個問題。

感謝&問候

+0

什麼是你的問題?對不起,但現在它聽起來像你希望別人爲你編碼... – andr

+0

我不希望這實際上我只是要求幫助解決我的問題我已經寫了代碼 – ekjyot

+0

,但你還沒有說過什麼是你的問題!您的帖子中沒有問題描述。毫無疑問! – andr

回答

3

好吧,爲了 「重繪」 的Polyline你有兩個選擇:

  1. 使用Polyline.remove()移除模擬。然後使用PolylineOptions再次構建它並添加GoogleMap.addPolyline()

  2. 更改多段線的屬性。您可以使用setColor(int)來設置它的顏色,並使用setPoints(List<LatLng>)設置點。在您調用任何這些方法後,多段線應自動在地圖上重繪。

在你必須保持到創建的折線引用這兩種情況下,但你已經做到這一點的線:

Route.paths.add(polyline); 

如果我是你,我會選擇第二個選項去,因爲你贏了不必重新創建整個Route.paths集合。相反,您將不得不添加一條折線 - 從先前的最後LatLng到最後的LatLng記錄的折線。

+0

不,實際上我想用不同的顏色重新繪製它,而不是在之前記錄的latlng中追加它。所以我將不得不使用Polyline.remove()刪除多段線? – ekjyot

+0

如果你只改變點數和顏色,這兩個選項都是相同的 - 只需選擇一個最適合你的選項。 – andr