以下代码不适用于Google Maps API v2。使用右边框绘制多边形(外部和内部多边形),但不绘制外部边框的填充颜色。
PolygonOptions polygonOptions = new PolygonOptions();
polygonOptions.add(outerCoordinates);
polygonOptions.addHole(Arrays.asList(innerCoordinates));
polygonOptions.fillColor(Color.BLUE);
polygonOptions.strokeWidth(1.0f);
有人遇到同样的问题吗?
答案 0 :(得分:2)
检查是否要求多边形坐标必须顺时针(或逆时针)排序。尝试更改顺序。
答案 1 :(得分:0)
顶点必须按逆时针顺序添加。 Reference
我写了一个函数来确定List<LatLng>
是顺时针的。该代码是this answer的实现:
public boolean isClockwise(List<LatLng> region) {
final int size = region.size();
LatLng a = region.get(size - 1);
double aux = 0;
for (int i = 0; i < size; i++) {
LatLng b = region.get(i);
aux += (b.latitude - a.latitude) * (b.longitude + a.longitude);
a = b;
}
return aux <= 0;
}
在添加polygon
点之前,请将这三行放在:
if (isClockwise(polygon)) {
Collections.reverse(polygon);
}