खाली PostGIS तालिका की ज्यामिति प्रकार कैसे प्राप्त करें?


10

मेरे पास एक वेब एप्लिकेशन है जिसमें पंक्तियों को डालने से पहले एक पोस्टजीआईएस टेबल के जियोम फील्ड के ज्यामिति प्रकार को जानना आवश्यक है। मैं निम्नलिखित क्वेरी का उपयोग जियोम कॉलम के ज्यामिति प्रकार को निर्धारित करने के लिए करता हूं:

SELECT GeometryType(geom) FROM my_schema.building LIMIT 1

यह वास्तविक पंक्ति का ज्यामिति प्रकार लौटाता है, इसलिए जब मेरी तालिका खाली होती है तो यह काम नहीं करता है। मैं स्वयं ज्यामिति स्तंभ का ज्यामिति प्रकार कैसे निर्धारित करूं?

जवाबों:


17

क्वेरी को geometry_columnsइस तरह से तालिका के विरुद्ध चलाया जा सकता है

SELECT type 
FROM geometry_columns 
WHERE f_table_schema = 'my_schema' 
AND f_table_name = 'building' 
and f_geometry_column = 'geom';

(या, यदि आप भूगोल प्रकार का उपयोग कर रहे हैं, तो geometry_columnsसाथ geography_columnsऔर f_geometry_columnसाथ में f_geography_column)


जवाब में sql geometryप्रकार के लिए वापस आ जाएगा , जबकि हम अभी भी नहीं जान सकते हैं कि ज्यामिति बिंदु या रेखा है।
गेज़र

1
इसका मतलब है कि आपका ज्यामिति स्तंभ ज्यामिति प्रकार "ज्यामिति" पर सेट है (यानी यह सभी प्रकार के ज्यामिति को स्वीकार करता है)। इस स्थिति में आपको ST_GeometryType
atlefren

SELECT GeometryType(geom) FROM my_schema.building LIMIT 1ओपी पोस्ट के रूप में इस तरह? यदि टेबल खाली है तो यह काम नहीं करता है।
जिपर

और एक और बात, यदि सभी ज्यामिति स्तंभ को geometryसभी तालिका के लिए टाइप करने के लिए सेट किया गया है, तो क्या मैं एक दृश्य बना सकता हूं जिसमें सभी तालिकाएँ हो सकती हैं points lines polyogn?
जिपर

1
सही। एक सादृश्य: यह घोषणा करना कि एक जियोम कॉलम "ज्योमेट्री" प्रकार का है, किसी भी रंग के मोजे के लिए एक दराज को डिजाइन करने जैसा है। इस ड्रॉअर में मोज़े का रंग क्या है यह जाँचना कि यह खाली होने पर असंभव है।
atlefren

3

एक तालिका ज्यामिति के लिए देखें। श्री और ज्यामिति प्रकार वाले सभी भू स्तंभ यहां पंजीकृत हैं। यदि GEOMETRY प्रकार के साथ एक स्तंभ है तो सभी ज्यामिति प्रकार संग्रहीत किए जा सकते हैं।

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