PostGIS का उपयोग करके तालिका में lat / lon से ज्यामिति बनाना?


16

मेरे पास एक तालिका है जिसमें 800,000 से अधिक रिकॉर्ड हैं जिनमें एक लंबा और लंबा कॉलम शामिल है। डेटा स्रोत ने ज्यामिति नहीं बनाई, इसलिए मैं चारों ओर देख रहा था कि यह कैसे करना है। मुझे पता है कि ST_MakePoint (x, y, SRID) है, लेकिन सभी दस्तावेज़ और अन्य थ्रेड्स बताते हैं कि एकल बिंदु कैसे बनाएं। मैं इन स्तंभों का उपयोग करके ज्यामिति प्रकार कैसे बनाऊं?


1
क्या आप इन बिंदुओं से लाइनें बनाते हैं? चूँकि अंक रेखागणित होते हैं जैसे कि रेखाएँ और बहुभुज होते हैं ... इसलिए यदि आप इन बिंदुओं से रेखाएँ देख रहे हैं, तो पॉल रैमसे के इस हालिया ब्लॉग पोस्ट की जाँच करें: blog.cleverelephant.ca/2015/03/making-lines-from -point.html
DPSSpatial

नहीं। मेरा मतलब था कि उन्हें ज्यामितीय प्रकारों में स्थानिक प्रश्नों में उपयोग करने के लिए परिवर्तित करना। ऐसा लगता है कि मेरे प्रश्न का उत्तर दिया गया है, हालांकि धन्यवाद!
21

जवाबों:


33

PostGIS के नए संस्करण निम्नलिखित, थोड़े अधिक सामान्य, वाक्यविन्यास की अनुमति देते हैं:

ALTER TABLE your_table ADD COLUMN geom geometry(Point, 4326);

फिर कॉलम को पॉप्युलेट करने के लिए ST_SetSrid और ST_MakePoint का उपयोग करें:

UPDATE your_table SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326);

यहाँ देखें प्रलेखन:


14

यदि आप पहले से ही एक ज्यामिति कॉलम नहीं जोड़ते हैं (ईपीएसजी: 4326 यहाँ मानकर):

SELECT AddGeometryColumn ('your_table','geom',4326,'POINT',2);

फिर UPDATE, अपने x और y फ़ील्ड के नामों से गुजरते हुए:

UPDATE yourtable SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326);

यह पूरी तालिका को अद्यतन करेगा, जब तक कि आप एक WHEREखंड शामिल न करें

ST_SetSrid का संदर्भ: https://postgis.net/docs/ST_SetSRID.html


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