我想在地图上添加多边形。我正在从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);
}
}
}
答案 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);