2014-03-01 89 views
0

我想繪製一個在Google地圖上的多邊形取決於數組列表。首先檢查數組長度,然後手動添加點來繪製多邊形。下面的代碼工作正常。繪製多邊形在谷歌地圖使用數組[] - Android

因爲.add(new LatLng(array[0].a, array[0].b))是單線聲明我無法循環它。

有什麼辦法可以在循環中做到這一點。

private void drawpolygon(DistanceInfo array[]) { 

    int lengh = array.length; 
    if(lengh==2){ 
     mMap.addPolygon(new PolygonOptions() 
      .add(new LatLng(9.6632139, 80.0133258)) 
     .add(new LatLng(array[0].a, array[0].b)) 
     .add(new LatLng(array[1].a, array[1].b)) 
     .fillColor(Color.GRAY)); 
    } 
    else if(lengh==4){ 
     mMap.addPolygon(new PolygonOptions() 

     .add(new LatLng(9.6632139, 80.0133258)) 
     .add(new LatLng(array[0].a, array[0].b)) 
     .add(new LatLng(array[1].a, array[1].b)) 
     .add(new LatLng(array[2].a, array[2].b)) 
     .add(new LatLng(array[3].a, array[3].b)) 
     .fillColor(Color.GRAY)); 
    } 
} 

回答

2

嘗試

private void drawpolygon(DistanceInfo array[]) { 

    int length = array.length; 

    // Optional length checks. Modify yourself. 
    if(length == 0) 
    { 
     // Do whatever you like then get out. Do not run the following. 
     return; 
    } 

    // We have a length of not 0 so...  
    PolygonOptions poly = new PolygonOptions(); 
    poly.fillColor(Color.GRAY); 

    // Initial point 
    poly.add(new LatLng(9.6632139, 80.0133258); 

    // ... then the rest. 
    for(int i = 0; i < length; i++) 
    { 
     poly.add(new LatLng(array[i].a, array[i].b)); 
    } 

    // Done! Add to map. 
    mMap.addPolygon(poly); 
} 

注意,這允許陣列[]以具有任何長度(除了0)。請添加您自己的代碼以進行長度檢查:)

+0

不,它只爲初始點繪製多邊形。 –

+0

我做了一些修改。現在應該做的伎倆:) –

+0

ohhh。對不起,即使我沒有看到..謝謝。那很好.. –