2013-04-26 517 views
1

在我的地圖中,我有點可拖動地圖以更改多邊形點的位置。當標記移動時,我從一個跟蹤我所有地圖元素的類中獲取我正在編輯的多邊形,將其從地圖中移除並繪製具有更新位置的新多邊形。多邊形不顯示填充顏色

我遇到的問題是當我將多邊形的一邊上的點移動到另一邊時,填充顏色消失,直到我移動其他點中的2點。

enter image description here

結果

enter image description here

這是什麼,我做錯了,或者這是API中的錯誤?

這裏是我的一些代碼在onMarkerDragEnd

String[] ary = marker.getSnippet().split("\\?"); 
     MapElement elem = mapElements.get(Long.parseLong(ary[0])); 
     ArrayList<LatLng> polyPoints = elem.getLocationArray(); 
     polyPoints.set(Integer.parseInt(ary[1]), marker.getPosition()); 

    Polygon old = elem.getPolygon(); 
    Polygon p = map.addPolygon(new PolygonOptions().fillColor(0x500011FF).strokeColor(0x50444444) 
     .strokeWidth(4).addAll(polyPoints)); 

    elem.setPolygon(p); 

    old.remove(); 

基本標記片段保存點的位置的位置數組中,然後我從陣列位置和新的位置更新的標記

+0

我真的不喜歡所有的片段解析。您可能需要使用[Android Maps Extensions](http://code.google.com/p/android-maps-extensions/)中的Marker.setData和Marker.getData。 – 2013-04-26 21:17:49

+0

同樣的問題發生在沒有孔的複雜但閉合的形狀上 - 就好像路口檢查有一些舍入誤差或者在某個縮放級別放下某些點。 Play Services Lib 4.0.30(889083-30) – tomash 2014-01-28 10:42:49

回答

0

由於"Polygon vertices may now be ordered in clockwise or counterclockwise order."(固定在v5中),您似乎正在使用google-play-services v4。

在Android SDK Manager中更新google-play-services並再次導入lib項目。此外,您還應該在您的設備上安裝Google Play服務APK 3.0.25或更高版本。

+0

我99.9%確定這不是問題,因爲我沒有啓動這個項目,直到該選項可用。我也在地圖上繪製多邊形,按下地圖並在每次點擊時將新點添加到「PolygonOptions」,然後移除舊的多邊形並創建一個新的多邊形以顯示。 – tyczj 2013-04-27 23:56:04

+0

@tyczj如果您僅查看您正在使用的Google-play-services_lib的清單以及設備上的Google Play服務的應用程序詳情,那麼您可以在其中添加0.01%。 「直到有了這個選項,我纔開始這個項目。」什麼選擇? – 2013-04-28 07:07:18

+0

是的,我的設備上有'3.0.27'版本,我已經加載了最新的'google play services'。我的意思是「我沒有開始這個項目,直到有了這個選項。」是以順時針或逆時針順序繪製多邊形的選項 – tyczj 2013-04-29 13:27:12