在google ampv2 android上添加多边形

时间:2014-05-13 09:29:22

标签: java android google-maps

我想在地图上添加多边形。我正在从arraylist中检索lat lng值。我正在尝试从这些lat lng值添加多边形。但是没有在地图上添加多边形。请告诉我我在哪里犯了一个错误

我的代码

  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);
     }
        }
        } 

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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);