यह पिछले प्रश्न का अनुसरण है । आप देखेंगे कि मैं एक नया PostGIS उपयोगकर्ता हूं।
मैंने अपने डेटा में टोपोलॉजी की वैधता को देखा है और लैंडकवर (बहुभुज) डेटासेट में लगभग 1700 टोपोलॉजी मुद्दे खोजे हैं। ये सभी "रिंग सेल्फ सेपरेशन" हैं।
पॉल रामसे (२० पृष्ठ) की इस प्रस्तुति में कुछ उपयोगी जानकारी का उपयोग करते हुए , मैंने अपने डेटा को उसी हिसाब से बफ़र करने का प्रयास किया है:
UPDATE स्कीमा .डेटा SET the_geom = बफर (the_geom, 0.0) WHAIL isvalid (the_geom) = false और isvalid (बफर (the_geom, 0.0)) = true;
लेकिन मुझे प्रतिक्रिया मिल रही है:
सूचना: रिंग सेल्फ-चौराहे पर या उसके पास स्थित बिंदु (संपादित) ERROR: संबंध के लिए नई पंक्ति "sgm_buffer" चेक कांस्टेंट "enforce_geotyp_the_geom" का उल्लंघन करता है
********** त्रुटि **********
त्रुटि: संबंध के लिए नई पंक्ति "sgm_buffer" चेक का उल्लंघन करता है "enforce_geotyp_the_geom" SQL राज्य: 23514
मैंने भी बस कोशिश की है:
अद्यतन csgn.sgm_buffer सेट the_geom = बफर (a_geom, 0.0)
और पाओ:
त्रुटि: संबंध के लिए नई पंक्ति "sgm_buffer" चेक का उल्लंघन करती है "enforce_geotyp_the_geom"
********** त्रुटि **********
त्रुटि: संबंध के लिए नई पंक्ति "sgm_buffer" चेक का उल्लंघन करता है "enforce_geotyp_the_geom" SQL राज्य: 23514
तो क्या मुझे लगता है कि यह बफर तकनीक मेरे मुद्दों पर काम नहीं करेगी? या मुझ से कुछ गलत हो रहा है?
श्री रामसे तब "8 के" बहुभुज से निपटने के लिए एक अतिरिक्त तकनीक का सुझाव देने के लिए एक ही दस्तावेज़ में जाते हैं। मुझे यह पूरी तरह से समझ में नहीं आया कि इसे कोड में पूरा कैसे लिखा जाए (या यह क्या कर रहा है और क्या यह मेरी मदद करेगा):
चुनें ST_BuildArea (ST_Union ('LINESTRING EMPTY', ST_ExteriorRing ('POLYGON (...))'
तो .... क्या कोई मदद कर सकता है? यह मेरे तंग समयसीमा और PostGIS में सीमित कौशल के साथ एक वास्तविक दुःस्वप्न साबित हो रहा है।
ST_Multi()
सभी बहुभुजों को बलपूर्वक लेने की आवश्यकता हो सकती है MULTIPOLYGON
(यह एक धारणा है)