आपकी समस्या इस कारण से है कि आपने समूह द्वारा क्षेत्र में क्या शामिल किया है।
ST_UNION एक समग्र कार्य है, जिसका अर्थ है कि यह GROUP
पैरामीटर के रूप में आपके द्वारा निर्दिष्ट के आधार पर भंग हो रहा है ।
यहाँ आपने जो दर्ज किया है:
SELECT c.fid, ST_Union(c.boundaryshape) FROM c Group by c.fid,c.boundaryshape;
इसके अनुसार, आप अपने द्वारा समूहीकरण कर रहे हैं fid
, जो संभवतः एक अद्वितीय पहचानकर्ता है, और इसके द्वारा भी boundaryshape
, जो कि ज्यामिति है। इसके साथ समस्या यह है कि यह बहुत कम संभावना है कि एक अद्वितीय आईडी साझा करने वाली सुविधाओं में समान ज्यामिति होने वाली हैं। इसलिए, ST_Union
शायद निम्नलिखित जैसे कुछ के साथ समाप्त होने जा रहा है:
Input:
fid boundaryshape
1 11
1 12
1 11
1 13
2 12
2 13
2 12
3 5
3 2
3 4
Output:
fid boundaryshape
1 (11 + 11)
1 12
1 13
2 (12 + 12)
2 13
3 2
3 4
3 5
इस मामले में, आपको केवल अपने विशिष्ट पहचानकर्ता के आधार पर विघटित होना चाहिए, जब तक कि आपके पास वास्तव में उसी के साथ कई डुप्लिकेट ज्यामिति न हों fid
, जिससे आप छुटकारा पाने की कोशिश कर रहे हैं। हालांकि उस स्थिति में भी, आपको केवल समूह पर आधारित होना चाहिए fid
, और संघ ज्यामिति दोहराव का ध्यान रखेगा।
मैं निम्नलिखित कोशिश करूँगा:
SELECT c.fid, ST_Union(c.boundaryshape) FROM c GROUP BY c.fid;
आपको सामान्य विशेषता के आधार पर सभी सुविधाओं को भंग करने का वांछित परिणाम देना चाहिए fid
।
यहाँ PostGIS साइट पर सहायता दस्तावेज है: ST_Union
नीचे सूचीबद्ध पहला उदाहरण देखें और ध्यान दें कि इसमें समूह में ज्यामिति को अनुभाग द्वारा शामिल नहीं किया गया है।