الاسم
ST_Volume — تحسب حجم مجسّم ثلاثي الأبعاد. إذا طُبّقت على أشكال سطحية (حتى المغلقة منها) فستُعيد 0.
المختصر
float ST_Volume(geometry geom1);
الوصف
متاحة منذ: 2.2.0
تتطلب هذه الدالة الواجهة الخلفية SFCGAL.
تدعم هذه الدالة الأبعاد الثلاثية ولا تُسقط قيمة Z.
تدعم هذه الدالة الأسطح متعددة الوجوه (Polyhedral surfaces).
تدعم هذه الدالة المثلثات وأسطح الشبكات المثلثية غير المنتظمة (TIN).
تطبّق هذه الدالة مواصفة SQL/MM. SQL-MM IEC 13249-3: 9.1 (مماثلة لـ ST_3DVolume)
مثال
عند إنشاء أسطح مغلقة باستخدام WKT، تُعامَل على أنها مساحية لا مجسّمة. لجعلها مجسّمة تحتاج إلى استخدام ST_MakeSolid. الأشكال المساحية ليس لها حجم. إليك مثالًا للتوضيح.
SELECT ST_Volume(geom) As cube_surface_vol,
ST_Volume(ST_MakeSolid(geom)) As solid_surface_vol
FROM (SELECT 'POLYHEDRALSURFACE( ((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)) )'::geometry) As f(geom);
cube_surface_vol | solid_surface_vol
------------------+-------------------
0 | 1