الاسم
ST_CollectionHomogenize — تُعيد أبسط تمثيل لمجموعة أشكال.
المختصر
geometry ST_CollectionHomogenize(geometry collection);
الوصف
تُعيد، من مجموعة أشكال مُعطاة، التمثيل "الأبسط" لمحتوياتها.
-
تُعاد المجموعات المتجانسة (الموحّدة) في صورة الشكل المتعدد المناسب.
-
تُسطَّح المجموعات غير المتجانسة (المختلطة) في مجموعة GeometryCollection واحدة.
-
تُعاد المجموعات التي تحتوي على عنصر ذري واحد في صورة ذلك العنصر.
-
تُعاد الأشكال الذرية دون تغيير. ويمكن عند الحاجة تحويلها إلى شكل متعدد باستخدام ST_Multi.
|
|
|
لا تضمن هذه الدالة صلاحية النتيجة. وعلى وجه الخصوص، فإن المجموعة التي تحتوي على مضلعات متجاورة أو متداخلة ستُنشئ MultiPolygon غير صالح. يمكن التحقق من هذه الحالة باستخدام ST_IsValid وإصلاحها باستخدام ST_MakeValid. |
متاحة منذ: 2.0.0
أمثلة
مجموعة ذات عنصر واحد محوّلة إلى شكل ذري
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0))'));
st_astext
------------
POINT(0 0)
مجموعة متداخلة ذات عنصر واحد محوّلة إلى شكل ذري:
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(MULTIPOINT((0 0)))'));
st_astext
------------
POINT(0 0)
مجموعة محوّلة إلى شكل متعدد:
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0),POINT(1 1))'));
st_astext
---------------------
MULTIPOINT((0 0),(1 1))
مجموعة غير متجانسة متداخلة مسطّحة إلى GeometryCollection:
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0), GEOMETRYCOLLECTION( LINESTRING(1 1, 2 2)))'));
st_astext
---------------------
GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(1 1,2 2))
مجموعة مضلعات محوّلة إلى MultiPolygon (غير صالح):
SELECT ST_AsText(ST_CollectionHomogenize('GEOMETRYCOLLECTION (POLYGON ((10 50, 50 50, 50 10, 10 10, 10 50)), POLYGON ((90 50, 90 10, 50 10, 50 50, 90 50)))'));
st_astext
---------------------
MULTIPOLYGON(((10 50,50 50,50 10,10 10,10 50)),((90 50,90 10,50 10,50 50,90 50)))