Android Google地图:隐藏整个地图的多边形或形状

时间:2016-12-30 14:59:43

标签: java android google-maps

我试图隐藏除了区域之外的整个地图,因为我使用的是在我要显示的区域中有一个洞的多边形。

问题在于,根据缩放,空白区域会被多边形的颜色覆盖,或者多边形会失去颜色。

这是代码:

//polygon hide all world map
float delta = 0.1f; //0.1f

List points = Arrays.asList(new LatLng(90, -180),

    new LatLng(-90+delta, -180+delta),

    new LatLng(-90+delta, 0),

    new LatLng(-90+delta, 180-delta),

    new LatLng(0, 180-delta),

    new LatLng(90-delta, 180-delta),

    new LatLng(90-delta, 0),

    new LatLng(90-delta, -180+delta),

    new LatLng(0,-180+delta));

PolygonOptions rectOptions = new PolygonOptions();
rectOptions.addAll(points);

//hole
ArrayList<LatLng> a = new ArrayList<>();
a.add(new LatLng(centro.getLatitud1(), centro.getLongitud1()));
a.add(new LatLng(centro.getLatitud2(), centro.getLongitud1()));
a.add(new LatLng(centro.getLatitud2(), centro.getLongitud2()));
a.add(new LatLng(centro.getLatitud1(), centro.getLongitud2()));
Iterable<LatLng> iterator = a;
rectOptions.addHole(iterator);
// Get back the mutable Polygon
rectOptions.fillColor(ResourcesCompat.getColor(getResources(), R.color.colorPrimary, null));

polygon = mMap.addPolygon(rectOptions);   

图片:

一切正确

All correct

多边形颜色消失

polygon colour dissapear

孔中填充多边形的颜色

Hole is filled with the color of the polygon

如果我继续缩放,一切都向右转。

我正在使用'com.google.android.gms:play-services:9.6.1'

我不知道如何修复它,我是地图中的菜鸟,如果有人知道该怎么做或知道其他方法做我想做的事我会非常感激。

1 个答案:

答案 0 :(得分:1)

您的代码是正确的。有一个已知的开放式错误(Issue 5241)。

作为一种解决方法,我建议你看看我的答案here(你可以画出矩形孔而不是圆形孔)。