Ok, I see what the issue is. Cesium is reading this as one big polygon with many pieces, the first piece is interpreted as the outer polygon, and the others are interpreted as holes, hence no fill.
You can tell there’s nothing wrong with any of the individual polygons because if you swap the order around, the first polygon in the list will always be filled. The problem here is you need an extra layer of nesting (that’s why the first works and the second does not). So here’s two of the polygons as defined in the incorrect version:
{
“type”: “FeatureCollection”,
“features”: [
{
“type”: “Feature”,
“geometry”: {
“type”: “MultiPolygon”,
“coordinates”: [
[
[[3.912,4.689],[3.932,4.708],[3.957,4.692],[3.937,4.673],[3.912,4.689]],
[[-0.168,7.059],[-0.192,7.075],[-0.215,7.091],[-0.239,7.108],[-0.263,7.124],[-0.265,7.159],[-0.268,7.194],[-0.271,7.229],[-0.274,7.264],[-0.253,7.283],[-0.23,7.266],[-0.206,7.25],[-0.183,7.234],[-0.18,7.199],[-0.156,7.182],[-0.133,7.166],[-0.13,7.131],[-0.127,7.096],[-0.103,7.08],[-0.08,7.063],[-0.1,7.045],[-0.145,7.042],[-0.168,7.059]]
]
]
},
“properties”: {
“title”: “Some variable”
}
}
]
}
``
Only one of these will be filled. Even in geojson.io you can see it’ll only zoom to the first one.
Here it is with the correct nesting:
{
“type”: “FeatureCollection”,
“features”: [
{
“type”: “Feature”,
“geometry”: {
“type”: “MultiPolygon”,
“coordinates”: [
[
[[3.912,4.689],[3.932,4.708],[3.957,4.692],[3.937,4.673],[3.912,4.689]]
],
[
[[-0.168,7.059],[-0.192,7.075],[-0.215,7.091],[-0.239,7.108],[-0.263,7.124],[-0.265,7.159],[-0.268,7.194],[-0.271,7.229],[-0.274,7.264],[-0.253,7.283],[-0.23,7.266],[-0.206,7.25],[-0.183,7.234],[-0.18,7.199],[-0.156,7.182],[-0.133,7.166],[-0.13,7.131],[-0.127,7.096],[-0.103,7.08],[-0.08,7.063],[-0.1,7.045],[-0.145,7.042],[-0.168,7.059]]
]
]
},
“properties”: {
“title”: “Some variable”
}
}
]
}
``
This will fill both in Cesium and correctly zoom to both in geojson.io