2014-05-13 63 views
0

我想在map.here上添加多邊形,我從arraylist中檢索緯度lng值。我試圖從這些緯度值中添加一個多邊形。但多邊形沒有添加到map.please中我在哪裏,我犯了一個錯誤在google ampv2上添加多邊形android

我的代碼

polarl=(ArrayList<HashMap<String, String>>) 
      getIntent().getSerializableExtra("polMyList"); 
    Log.e("POL ARRAY", polarl.toString()); 
    Polygon polygon; 
    LatLng polLatLng; 
    if(polarl.size()>0){ 
     for(int k=0;k<polarl.size();k++){ 
      String polLat =polarl.get(k).get("polLat").toString(); 
      String polLng =polarl.get(k).get("polLng").toString(); 
      if (!polLat.trim().equals("") && !polLng.trim().equals("")){ 
       double HPollat = Double.parseDouble(polLat.trim()); 
       double HPolLong= Double.parseDouble(polLng.trim()); 
       polLatLng=new LatLng(HPollat, HPolLong); 

       Log.e("POL LAT LANG", ""+polLatLng); 
       rectOptions = new   
    PolygonOptions().add(polLatLng).fillColor(Color.BLUE).strokeColor(Color.RED); 
Polygon polygon1 = _googleMap.addPolygon(rectOptions); 
    } 
     } 
     } 
+0

添加此'多邊形polygon1 = _googleMap.addPolygon(rectOptions);'出方爲增加循環 –

+0

但不來 – Durga

+0

檢查這個'polLatLng'你有正確? –

回答

2

嘗試這種方式

Polygon polygon; 
LatLng polLatLng; 

PolygonOptions rectOptions=new PolygonOptions(); 

if(polarl.size()>0){ 
    for(int k=0;k<polarl.size();k++){ 
     String polLat =polarl.get(k).get("polLat").toString(); 
     String polLng =polarl.get(k).get("polLng").toString(); 
     if (!polLat.trim().equals("") && !polLng.trim().equals("")){ 
      double HPollat = Double.parseDouble(polLat.trim()); 
      double HPolLong= Double.parseDouble(polLng.trim()); 
      polLatLng=new LatLng(HPollat, HPolLong); 

      Log.e("POL LAT LANG", ""+polLatLng); 

      rectOptions.add(polLatLng); 

    } 
    } 
    } 
    Polygon polygon1 = _googleMap.addPolygon(rectOptions.strokeColor(Color.RED).fillColor(Color.BLUE)); 

欲瞭解更多信息,請訪問該SO POST

+0

我試過但沒有來 – Durga

+0

@Durga現在檢查它clerly並嘗試 –

+0

非常感謝你的工作很好 – Durga

1

試試這個代碼,

ArrayList<LatLng> points= new ArrayList<LatLng>(); 
    polarl=(ArrayList<HashMap<String, String>>)getIntent().getSerializableExtra("polMyList"); 
    LatLng polLatLng; 
    if(polarl.size()>0){ 
     for(int k=0;k<polarl.size();k++){ 
      String polLat =polarl.get(k).get("polLat").toString(); 
      String polLng =polarl.get(k).get("polLng").toString(); 
      if (!polLat.trim().equals("") && !polLng.trim().equals("")){ 
       double HPollat = Double.parseDouble(polLat.trim()); 
       double HPolLong= Double.parseDouble(polLng.trim()); 
       polLatLng=new LatLng(HPollat, HPolLong); 
       points.add(polLatLng); 
      } 
     } 
    } 
    polygonOptions = new PolygonOptions(); 
    polygonOptions.fillColor(Color.TRANSPARENT); 
    polygonOptions.strokeColor(Color.RED); 
    polygonOptions.strokeWidth(3); 
    polylineOptions.color(Color.RED); 
    polylineOptions.width(3); 
    polylineOptions.addAll(points); 
    map.addPolyline(polylineOptions); 
相關問題