我正在尝试根据数组列表在Google地图上绘制多边形。首先检查数组长度然后我手动添加点来绘制多边形。以下代码工作正常。
因为.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));
}
}
答案 0 :(得分: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);
}
请注意,这允许array []具有任意长度(0除外)。请添加您自己的代码进行长度检查:)