public class ST_Volume
extends GenericUDF
Returns the area of a multipolygon 3D geometry. The multipolygon is handled as a solid.
Format:
ST_Volume(multiPolygon ST_MultiPolygon, tolerance NUMBER) - returns the volume of a 3D MultiPolygon. The MultiPolygon is handled as solid
The tolerance is optional.
By default the tolerance is 0.05 for geodetic geometries and 0 for non geodetic.
For projected data, the volume is in the same unit as the unit of projection. For geodetic data, the volume is in cubic meters.
Return -1 in case of error.
Example:
select select ST_Volume(
ST_MultiPolygon (' { "type": "MultiPolygon", "coordinates":
[[[[0, 0, 0], [0, 0, 1], [0, 1, 1], [0, 1, 0], [0, 0, 0]]],
[[[0, 0, 0], [0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0]]],
[[[0, 0, 0], [1, 0, 0], [1, 0, 1], [0, 0, 1], [0, 0, 0]]],
[[[1, 1, 0], [1, 1, 1], [1, 0, 1], [1, 0, 0], [1, 1, 0]]],
[[[0, 1, 0], [0, 1, 1], [1, 1, 1], [1, 1, 0], [0, 1, 0]]],
[[[0, 0, 1], [1, 0, 1], [1, 1, 1], [0, 1, 1], [0, 0, 1]]]]}', 0)
) from hivetable LIMIT 1; -- return 1.0