الاسم
ST_Boundary — تُعيد حدود الشكل الهندسي.
المختصر
geometry ST_Boundary(geometry geomA);
الوصف
تُعيد انغلاق الحدود التوافقية (combinatorial boundary) لهذا الشكل الهندسي. تُعرَّف الحدود التوافقية كما هو موضح في القسم 3.12.3.2 من مواصفة OGC. ولأن ناتج هذه الدالة انغلاق، ومن ثم فهو مغلق طوبولوجيًا، يمكن تمثيل الحدود الناتجة باستخدام الأشكال الهندسية الأولية التمثيلية كما هو موضح في مواصفة OGC، القسم 3.12.2.
تُنفَّذ بواسطة وحدة GEOS
|
|
|
قبل الإصدار 2.0.0، كانت هذه الدالة تُطلق استثناءً إذا استُخدمت مع |
تطبّق هذه الدالة مواصفة OGC Simple Features Implementation Specification for SQL 1.1. OGC SPEC s2.1.1.1
تطبّق هذه الدالة مواصفة SQL/MM. SQL-MM IEC 13249-3: 5.1.17
تدعم هذه الدالة الأبعاد الثلاثية ولا تُسقط قيمة Z.
حُسّنت في: 2.1.0 أُضيف دعم المثلث (Triangle)
تغيّرت في: 3.2.0 دعم TIN، لا تستخدم GEOS، ولا تحوّل المنحنيات إلى خطوط
أمثلة
خط (LineString) مع نقاط الحدود متراكبة عليه
SELECT ST_Boundary(geom)
FROM (SELECT 'LINESTRING(100 150,50 60, 70 80, 160 170)'::geometry As geom) As f;
ST_AsText output
MULTIPOINT((100 150),(160 170))
|
ثقوب مضلع مع حدودها كخط متعدد (MultiLineString)
SELECT ST_Boundary(geom)
FROM (SELECT
'POLYGON (( 10 130, 50 190, 110 190, 140 150, 150 80, 100 10, 20 40, 10 130 ),
( 70 40, 100 50, 120 80, 80 110, 50 90, 70 40 ))'::geometry As geom) As f;
ST_AsText output
MULTILINESTRING((10 130,50 190,110 190,140 150,150 80,100 10,20 40,10 130),
(70 40,100 50,120 80,80 110,50 90,70 40))
|
SELECT ST_AsText(ST_Boundary(ST_GeomFromText('LINESTRING(1 1,0 0, -1 1)')));
st_astext
-----------
MULTIPOINT((1 1),(-1 1))
SELECT ST_AsText(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 1))')));
st_astext
----------
LINESTRING(1 1,0 0,-1 1,1 1)
--Using a 3d polygon
SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('POLYGON((1 1 1,0 0 1, -1 1 1, 1 1 1))')));
st_asewkt
-----------------------------------
LINESTRING(1 1 1,0 0 1,-1 1 1,1 1 1)
--Using a 3d multilinestring
SELECT ST_AsEWKT(ST_Boundary(ST_GeomFromEWKT('MULTILINESTRING((1 1 1,0 0 0.5, -1 1 1),(1 1 0.5,0 0 0.5, -1 1 0.5, 1 1 0.5) )')));
st_asewkt
----------
MULTIPOINT((-1 1 1),(1 1 0.75))