PostGIS में अपने शेपफाइल डेटा को आयात करते समय, मैंने उचित प्रोजेक्शन का चयन नहीं किया।
निर्देशांक को बदले बिना अब मैं डेटा का SRID कैसे बदलूं?
PostGIS में अपने शेपफाइल डेटा को आयात करते समय, मैंने उचित प्रोजेक्शन का चयन नहीं किया।
निर्देशांक को बदले बिना अब मैं डेटा का SRID कैसे बदलूं?
जवाबों:
एक एकल पंक्ति फ़ंक्शन है जो आपके लिए ऐसा करता है। बस निम्नलिखित SQL क्वेरी का उपयोग करें:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
लेकिन, अगर आप मेरे जैसे हैं, तो आपको निम्न स्तर, लघु चरणों में दिलचस्पी होगी। तार्किक रूप से बोलना, उपरोक्त फ़ंक्शन निम्न चार चरण प्रक्रिया के बराबर है:
ज्यामिति_ कॉलम की तालिका में, SRID को आवश्यक मान पर अद्यतन करें।
निम्न एसक्यूएल स्टेटमेंट का उपयोग करके, टेबल पर दिए गए कन्ट्रोल को छोड़ दें
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
निम्न SQL कथन का उपयोग करके ज्यामिति के SRID'd को अद्यतन करें
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
निम्नलिखित एसक्यूएल स्टेटमेंट का उपयोग करके कन्ट्रोल को वापस जोड़ें
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
PostGIS 2.x के साथ, ज्यामिति कॉलम आमतौर पर टाइपमॉड्स का उपयोग करते हैं geometry(Point, 1234)
। इनके लिए आप ALTER TABLE का उपयोग करके एक कदम में सीधे ज्योमेट्री कॉलम टाइप को संशोधित कर सकते हैं ।
उदाहरण के लिए, WGS84 geom
में SRID सेट करने के लिए, ST_SetSRID काmytable
उपयोग करें :
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
ध्यान दें कि यह केवल SRID को बदल देगा, लेकिन समन्वय डेटा को रूपांतरित नहीं करेगा।
UpdateGeometrySRID
समर्थन नहीं करता है।