2016-12-30 98 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