简体   繁体   English

在Google ampv2 android上添加多边形

[英]Add polygon on google ampv2 android

I want to add polygon on map.here i am retrieving lat lng values from arraylist.I am trying to add a polygon from these lat lng values .But the polygon not added on map.please tell me where i made a mistake 我想在地图上添加多边形。在这里我要从arraylist检索纬度值。我正试图从这些纬度值中添加一个多边形。但是未在地图上添加的多边形。请告诉我我在哪里弄错了

my code 我的代码

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

Try this way 试试这个

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

For more information go to this SO POST 有关更多信息,请转到此POST

Try this code, 试试这个代码,

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM