You’re correct, the BoundingBox property is not set automatically, but you can pass it yourself when you build the polygon. For instance (with random values):
var polygon = GeoJson.Polygon(
new GeoJsonObjectArgs<GeoJson3DCoordinates>
{
BoundingBox = new GeoJsonBoundingBox<GeoJson3DCoordinates>(
GeoJson.Position(4.0, 5.0, 6.0),
GeoJson.Position(4.0, 5.0, 6.0))
},
GeoJson.Position(1.0, 2.0, 3.0),
GeoJson.Position(4.0, 5.0, 6.0),
GeoJson.Position(7.0, 8.0, 9.0),
GeoJson.Position(1.0, 2.0, 3.0));
Why are you using GeoJson3DCoordinates? This is a flat surface shape.
In spatial libraries like GDAL or NetTopologySuite a property like BoundingBox would be read only because the coordinates should be enough to calculate the bounding box.
Mine was mostly an example on how you can pass the bounding box yourself in the constructor, of course it would be different in your case.
Regarding why we do not build the bounding box ourself. The GeoJson objects are used to generate queries, so we do not want to add things to the objects that the users did not specify themselves.