الاسم
ST_LineMerge — تُعيد الخطوط المتكوّنة من خياطة MultiLineString معاً.
المختصر
geometry ST_LineMerge(geometry amultilinestring);
geometry ST_LineMerge(geometry amultilinestring, boolean directed);
الوصف
تُعيد LineString أو MultiLineString متكوّناً من ضم عناصر الخطوط في MultiLineString معاً. تُضم الخطوط عند نقاط نهاياتها في التقاطعات الثنائية. ولا تُضم الخطوط عبر التقاطعات من الدرجة الثالثة أو أعلى.
إذا كانت قيمة directed هي TRUE، فلن تغيّر ST_LineMerge ترتيب النقاط داخل LineString، ولذا لن تُدمج الخطوط ذات الاتجاهات المتعاكسة
|
|
|
تُستخدم فقط مع MultiLineString/LineString. أنواع الأشكال الأخرى تُعيد GeometryCollection فارغة |
تُنفَّذ بواسطة وحدة GEOS.
حُسّنت في: 3.3.0 أصبحت تقبل المعامل directed.
تتطلب GEOS >= 3.11.0 لاستخدام المعامل directed.
متاحة منذ: 1.1.0
|
|
|
تُزيل هذه الدالة البعد M. |
أمثلة
دمج خطوط مختلفة الاتجاه.
SELECT ST_AsText(ST_LineMerge(
'MULTILINESTRING((10 160, 60 120), (120 140, 60 120), (120 140, 180 120))'
));
--------------------------------------------
LINESTRING(10 160,60 120,120 140,180 120)
لا تُدمج الخطوط عبر التقاطعات ذات الدرجة > 2.
SELECT ST_AsText(ST_LineMerge(
'MULTILINESTRING((10 160, 60 120), (120 140, 60 120), (120 140, 180 120), (100 180, 120 140))'
));
--------------------------------------------
MULTILINESTRING((10 160,60 120,120 140),(100 180,120 140),(120 140,180 120))
إذا تعذّر الدمج لأن الخطوط غير متلامسة، فيُعاد MultiLineString الأصلي.
SELECT ST_AsText(ST_LineMerge( 'MULTILINESTRING((-29 -27,-30 -29.7,-36 -31,-45 -33),(-45.2 -33.2,-46 -32))' )); ---------------- MULTILINESTRING((-45.2 -33.2,-46 -32),(-29 -27,-30 -29.7,-36 -31,-45 -33))
لا تُدمج الخطوط ذات الاتجاهات المتعاكسة إذا كانت directed = TRUE.
SELECT ST_AsText(ST_LineMerge( 'MULTILINESTRING((60 30, 10 70), (120 50, 60 30), (120 50, 180 30))', TRUE)); ------------------------------------------------------- MULTILINESTRING((120 50,60 30,10 70),(120 50,180 30))
مثال يوضّح التعامل مع البعد Z.
SELECT ST_AsText(ST_LineMerge(
'MULTILINESTRING((-29 -27 11,-30 -29.7 10,-36 -31 5,-45 -33 6), (-29 -27 12,-30 -29.7 5), (-45 -33 1,-46 -32 11))'
));
--------------------------------------------------------------------------------------------------
LINESTRING Z (-30 -29.7 5,-29 -27 11,-30 -29.7 10,-36 -31 5,-45 -33 1,-46 -32 11)