أكثر

اتحاد نمط "التراكب" PostGIS ، وليس أسلوب "التلاشي"


أحاول استخدام PostGIS لعمل "اتحاد" للمضلعات. عندما بحثت في Google عن "PostGIS Union" ، وجدت وظيفة ST_Union ، والتي تؤدي ما يمكنني تسميته "حل" ، وليس اتحادًا. ما أريد فعله في الواقع هو ما يشير إليه GRASS على أنه "تراكب" مع عامل التشغيل "OR" ، أو QGIS / ArcGIS ببساطة استدعاء "الاتحاد". على سبيل المثال:

مما يمكنني قوله ، في PostGIS يبدو أنني بحاجة إلى استخدام كل من ST_Intersection و ST_SymDifference معًا للحصول على النتائج التي أسعى إليها. لقد حققت بعض النجاح في بناء الجملة التالي ، لكنه غير فعال بشكل رهيب. هل هناك طريقة أفضل / أكثر كفاءة للقيام بما أتمنى تحقيقه؟

أدخل في "CombinedResults" ("geom") حدد ST_SymDifference ("test1" .GEOM ، "test2" .GEOM) من "test1" ، "test2" ؛ أدخل في "CombinedResults" ("geom") حدد ST_Intersection ("test1" .GEOM ، "test2" .GEOM) من "test1" ، "test2"

ربما ستساعدك ST_ConvexHull. راجع هذا المقتطف لفهم كيفية عمله http://www.bostongis.com/postgis_concavehull.snippet