我试图隐藏整个 map ,除了一个区域,因为我在我想显示的区域使用了一个有洞的多边形。
问题在于,根据缩放比例,空白区域会被多边形的颜色覆盖,或者多边形会失去颜色。
这是代码:
//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);
图片:
全部正确
多边形颜色消失
孔用多边形的颜色填充
如果我继续缩放,一切都会向右转。
我正在使用“com.google.android.gms:play-services:9.6.1”
我不知道如何修复它,而且我是 map 方面的菜鸟,如果有人知道该怎么做或知道其他方法来做我想做的事,我将不胜感激。
最佳答案
您的代码是正确的。有一个已知的开放错误 ( Issue 5241 )。
作为解决方法,我建议您看一下我的回答 here (您可以绘制矩形孔而不是圆形孔)。
关于java - 安卓谷歌地图 : Polygon or shape that hides entire map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41398250/