3 आयाम ज्यामिति से 2 आयाम में रूपांतरण


12

मेरे पास एक पॉइंट टेबल है जिसमें ज्यामिति कॉलम में 3 आयाम और 2 आयाम मान हैं। मैं इस 3 आयामी ज्यामिति को 2 आयाम में बदलना चाहता हूं। क्या PostGIS में कोई फ़ंक्शन है? इस समस्या को हल करने में कृपया मेरी मदद करें।

सादर श्रीशा.टीए


मैं ST_Force2D का उपयोग करना चाहूंगा, लेकिन यह कहता है: फ़ंक्शन st_force2d (ज्यामिति) मौजूद नहीं है क्या आपको कोई विचार है? धन्यवाद, लैस्ज़लो
लैस्ज़लो

जवाबों:


15

http://postgis.net/docs/manual-2.0/ST_Force_2D.html

ST_Force_2D (the_geom) से चुनें ...

अपनी मौजूदा तालिका अपडेट करें

 
ALTER TABLE your_geo_table ADD geom2d geometry;
UPDATE your_geo_table SET geom2d = ST_Force_2D(the_geom);

Http://postgis.net/docs/ भी देखें


1
के ST_Force2Dबजाय का उपयोग करें ST_Force_2dST_Force_2dहस्ताक्षर 2.1.0 में हटाए गए थे।
jgrocha

9

यदि आप एक नया कॉलम नहीं जोड़ना चाहते हैं तो आप निम्न कार्य भी कर सकते हैं:

ALTER TABLE your_geo_table  
  ALTER COLUMN geom TYPE geometry(YOUR_GEOM_TYPE, YOUR_EPSG) 
    USING ST_Force_2D(geom);

उदाहरण के लिए:

ALTER TABLE your_geo_table  
  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) 
    USING ST_Force_2D(geom);

मैंने इस सुझाव को एक डेटाबेस पर आज़माया है जो मेरे पास है (मेरे मामले में मुझे एक समान समस्या थी लेकिन मैं 3 डी होने के लिए मजबूर करना चाहता था), लेकिन मुझे यह त्रुटि मिली: ERROR: function st_force_3d (भूगोल) में LINE 3 मौजूद नहीं है : उपयोग ST_Force_3D (जियोम); ^ सुझाव: कोई फ़ंक्शन दिए गए नाम और तर्क प्रकारों से मेल नहीं खाता है। आपको स्पष्ट प्रकार की जातियों को जोड़ने की आवश्यकता हो सकती है। ********** त्रुटि ********** त्रुटि: फ़ंक्शन st_force_3d (भूगोल) में SQL स्थिति मौजूद नहीं है: 42883 संकेत: कोई फ़ंक्शन दिए गए नाम और तर्क प्रकारों से मेल नहीं खाता है। आपको स्पष्ट प्रकार की जातियों को जोड़ने की आवश्यकता हो सकती है। चरित्र:
एंड्रिया ग्रांडी

मुझे लगता है कि यह इसलिए है क्योंकि ST_Force3D ज्यामिति प्रकार के साथ काम करता है न कि भूगोल प्रकार के साथ।
थॉमस बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.