我需要在Mapbox Android SDK地圖上繪製帶有孔洞的GeoJSON聚合物。Mapbox Android - 如何繪製帶孔洞的GeoJSON多邊形
作爲GeoJSON spec說,
對於類型「多邊形」中,「座標」構件必須是座標陣列線性環的陣列。對於帶多個環的多邊形,首先必須是外部環,其他必須是內部環或孔。
在Leaflet,Mapbox JS和Mapbox GL JS中,加載GeoJSONs是由庫本身處理的。正如在this fiddle中可以看到的那樣,該庫考慮到了內環,從而正確地繪製了孔。
[ //Outer ring
[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]
],
[ //Inner ring (hole)
[100.35, 0.35], [100.65, 0.35], [100.65, 0.65], [100.35, 0.65], [100.35, 0.35]
]
當我看看關於繪製多邊形的Android文檔時,沒有任何有關孔的信息。他們給出的例子只是循環遍歷所有點,並用它構建一個PolyOptions:Polygon drawing in Mapbox Android。
我一直在嘗試通過添加外環所有點,然後內環,一個接一個地增加所有點。使用JSFiddle提供的簡單geoJSON它可以起作用,它會造成一個漏洞。但隨着我更復雜的geoJSON整個渲染被打破(形狀看起來不像應該)。
之後,我嘗試爲geoJSON的每個環構建一個單獨的聚合物。當然,形狀很好,但沒有洞,但堆疊的多邊形而不是它們。
我一直在尋找PolygonOptions構造函數的其他選項,但只能發送點數。我想繪製所有的多晶硅,然後減少形狀,但我found no such feature。
Here is my GeoJSON。它在mapbox JS上畫得很好。我想知道我的GeoJSON是否有問題,但我不這麼認爲,因爲它在geojson.io上畫得很好。也許我錯過了一些關於geoJSON或mapbox的東西。我沒有找到任何有關這方面的文件。我正在考慮切換到谷歌地圖,但這意味着重新啓動整個項目。
有什麼想法?
我可能是錯的,但Mapbox將「Polygon」定義爲「幾何註釋是閉合的座標循環」,根據API參考,無法向Polygons添加孔洞... – antonio
帶內部孔的多邊形尚未實現。有這個功能請求https://github.com/mapbox/mapbox-gl-native/issues/1729 – Tobrun
這就是我認爲..謝謝 – Rayjax