PostGIS में बहुभुज से बहुभुज में कनवर्ट / टाइपकास्ट कैसे करें?


30

क्या बहुभुज प्रकार बहुभुज टाइप करने का कोई तरीका है?

उदाहरण के लिए, मैंने एक बिंदु पर ST_Buffer () का उपयोग करके एक सर्कल बनाया है। उस फ़ंक्शन का रिटर्न प्रकार बहुभुज प्रकार का है। समस्या यह है कि ज्यामिति स्तंभ पर मल्टीपोलीगॉन प्रकार तक सीमित करने पर प्रतिबंध है। इसलिए, मैं एक साधारण बहुभुज नहीं डाल सकता।

मैंने ST_MPolyFromText () फ़ंक्शन का उपयोग किया है, लेकिन हमेशा की तरह यह उसके लिए अशक्त लौट रहा है और ST_Dump () उचित आउटपुट नहीं दे रहा है।

बाधा है:

CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 'MULTIPOLYGON'::text OR geom IS NULL),

क्या मल्टीप्लगॉन बाधा को जोड़ने का एक कारण है? कैसे बाधा को बहुभुज में बदलने के बारे में?
UnderDark

क्या यह बच्चों के gis.stackexchange.com/questions/14198/… का सवाल नहीं है ?
unicoletti

यह एक स्टैंड-अलोन सवाल भी है।
UnderDark

हाँ, यह एक बच्चों का सवाल है, लेकिन समस्या यह है कि जब आप पॉलीगॉन की परत वाले पोस्टगिस में आकृति को आयात करते हैं तो स्वचालित रूप से यह मल्टीलिगॉन की ज्यामिति बनाता है। तब यह डायटाइप को मल्टिपलगोन से बहुभुज में बदलने के लिए थोड़ा थकाऊ होता है .. क्योंकि यह क्लाइंट द्वारा किया जाएगा। तो बस आउटपुट को पोस्टगिस द्वारा बनाए गए उस प्रकार के कोलम में सहेजना होगा ..
विक्की

पुनश्च: उलटा करने के लिए, बहु-से-पाली से, उपयोग करें st_geometryn(geom, 1)
पीटर क्रस

जवाबों:


55

ST_Multi - ज्यामिति को MULTI * ज्यामिति के रूप में लौटाता है। यदि ज्यामिति पहले से ही एक बहु * है, तो इसे अपरिवर्तित लौटा दिया जाता है।

उदाहरण:

SELECT ST_AsText(ST_Multi(ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,
        743265 2967450,743265.625 2967416,743238 2967416))')));
        st_astext
        --------------------------------------------------------------------------------------------------
        MULTIPOLYGON(((743238 2967416,743238 2967450,743265 2967450,743265.625 2967416,
        743238 2967416)))
        (1 row)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.