2016-12-30 100 views
2

我想隐藏除区域之外的整个地图,因为我在该区域使用带有洞的多边形。Android谷歌地图:隐藏整个地图的多边形或形状

问题是,根据缩放比例,空白区域会覆盖多边形的颜色,或者多边形会丢失其颜色。

这是代码:

//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

多边形颜色dissapear

polygon colour dissapear

如果我把一切都放大右转

孔填充多边形

Hole is filled with the color of the polygon

的颜色。

进出口使用“com.google.android.gms:发挥服务:9.6.1”

我不知道如何解决它,我在地图上一个小白,如果有人知道如何做到这一点或知道一些其他的方法来做我想做的事情,我会非常感激。

回答

1

您的代码是正确的。有一个已知的开放漏洞(Issue 5241)。

作为解决方法,我建议您看看我的回答here(您可以绘制矩形孔而不是圆形孔)。

+0

我在前几天发现了你的答案并且实现了它,问题是当我在地图上移动时,空白区域跟着我而不是保持静止,你知道有颜色的区域是否可以保持静态或模拟它不知何故? – doblejota93

+0

您可以尝试使用新的“OnCameraMoveListener”和“OnCameraIdleListener”,而不是弃用的“OnCameraChangeListener”。我会尽快更新我的答案 – antonio