Мне нужно нарисовать поли GeoJSON с отверстиями на карте Mapbox Android SDK.
Как сказано в спецификации GeoJSON,
Для типа «Многоугольник» элемент «координаты» должен быть массивом массивов координат LinearRing. Для многоугольников с несколькими кольцами первое должно быть внешним кольцом, а все остальные должны быть внутренними кольцами или отверстиями.
В Leaflet, Mapbox JS и Mapbox GL JS загрузкой файлов GeoJSON занимается сама библиотека. Как видно из этой скрипки, библиотека учитывает внутренние кольца и, таким образом, правильно рисует дыры.
[ //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: Рисование многоугольника в Mapbox Android.
Я пытался построить polyOptions, добавляя все точки из внешнего кольца, а затем из внутренних колец, одну за другой. С простым geoJSON от JSFiddle работает, пробивает дыру. Но с моим более сложным geoJSON весь рендеринг нарушен (форма не похожа на то, что должно).
После этого я попытался построить по одному отдельному полигону для каждого кольца geoJSON. Форма конечно хорошая, но дырок нет, а вместо них сложены полигоны.
Я искал другие варианты PolygonOptions, но не может быть отправлено ничего, кроме точек. Я думал о том, чтобы нарисовать все многоугольники, а затем вычесть формы, но я не нашел такой функции < / а>.
Вот мой GeoJSON. Он отлично рисует на mapbox JS. Мне интересно, если что-то не так с моим GeoJSON, но я так не думаю, так как он отлично работает на geojson.io. Возможно, мне что-то не хватает в geoJSON или mapbox. Я не нашел документации по этому поводу. Я подумываю о переходе на карты Google, но это будет означать перезапуск всего проекта с нуля.
Любая идея ?
Polygon
как аннотацию геометрии, которая представляет собой замкнутый цикл координат., И, согласно справочнику API, нет возможности добавлять дыры в полигоны ... - person antonio   schedule 11.03.2016