أكثر

ST_Union على أساس السمة


لدي شبكة طرق من خطوط مركزية من MultiLinestrings. لديهم عقد في كل تقاطع. أحاول أن أفهم كيف يمكنني دمج الطرق معًا التي لها نفس فئة السمة (هناك حوالي 80 فئة مختلفة). لا تكون الطرق التي لها نفس الفئة متصلة دائمًا ، لذلك أعتقد أنني بحاجة إلى استعادة النتيجة كسلاسل متعددة الخطوط مرة أخرى ولكن مجمعة على قيمة السمة.

هل هناك طريقة للقيام بذلك؟

تحرير: لقد لعبت حول بعض أكثر وحصلت على النتيجة التي أردتها. ببساطة باستخدام

حدد "الفئة" ، ((ST_Collect (geom))) كـ geom FROM s.road GROUP BY "category"

ولكن يبدو أن هذا قد تم إرجاعه كمجموعة هندسية للزنبركات المتعددة ولا يمكن تحميله في QGIS. اي نصيحه؟

تحرير 28.07.2019

حل نهائي:

حدد "الفئة" ، ((ST_Union (geom))) كـ geom FROM s.road GROUP BY "الفئة"

أعطاني استخدام ST_Union بدلاً من ST_Collect النتائج التي أردتها. بالنسبة للمبتدئين في SQL مثلي ، يمكنني شرح السبب. ST_Union يحل المناطق المتداخلة والمتداخلة بينما لا يقوم Collect بذلك. تتمثل عواقب استخدام ST_collect في هذه الحالة مع MultiLineString في أن النتيجة هي مجموعة Geometry ليست نوعًا مدعومًا لتحميل QGIS.


حدد الفئة ، ST_Union (geom) geom FROM s.road GROUP BY الفئة ؛

قد ترغب في استخدام ST_Dump () بعد ذلك لعدم ظهور سلاسل متعددة في النتيجة.


شاهد الفيديو: Мастер-класс по AutoCAD Тонкости работы с блоками, атрибутами и автоматическими спецификациями (شهر اكتوبر 2021).