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_2d। ST_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.