PostGIS में ज्यामिति से निर्देशांक प्राप्त करना?


60

यह रेखा:

SELECT geom FROM myLayer.geom

एक हेक्स मान लौटाएगा।

मुझे दशमलव मान कैसे मिलेगा, जो मानव-पठनीय समन्वय है?

जवाबों:


52

ST_AsText (जो WKT / Well Known Text के रूप में ज्यामिति लौटाता है) के अलावा, कई अतिरिक्त आउटपुट स्वरूप हैं, जैसे ST_AsGeoJSON ()।

Http://postgis.net/docs/manual-2.0/reference.html#Geometry_Outputs पर एक नज़र डालें और चुनें कि आपकी आवश्यकताओं में सबसे अच्छा क्या है।


71

बिंदु वस्तु देखने के लिए ST_AsText का उपयोग करें :

SELECT ST_AsText(the_geom) 
       FROM myTable;

देखने के लिए एक्स , वाई , और geom वस्तु:

SELECT ST_X(the_geom), ST_Y(the_geom), ST_AsText(the_geom) 
       FROM myTable;

3
मेरा मानना ​​है कि ST_X और ST_Y केवल अंकों के साथ काम करेंगे। वे बहुभुज या लाइनों के साथ काम नहीं करते हैं।
देवदत्त तेंगशे

आप सही देवदत्त हैं। यह केवल अंकों के लिए काम करता है। ST_X - बिंदु के X समन्वय को लौटाएँ, या उपलब्ध न होने पर NULL। इनपुट एक बिंदु होना चाहिए। मैंने अपना उत्तर अपडेट कर दिया है।
आरागॉन

7
बहुभुज / रेखाओं के लिए, उपयोग करेंst_x(st_centroid(the_geom))
स्टीव बेनेट

11

UTM में एक टेबल के साथ

SELECT 
ST_X(table.geometry) AS X1, --point x
ST_Y(table.geometry) AS Y1, --point y
ST_X(ST_TRANSFORM(table.geometry,4674)) AS LONG, -- longitude point x SIRGAS 2000
ST_Y(ST_TRANSFORM(table.geometry,4674)) AS LAT, --latitude point y SIRGAS 2000
ST_ASTEXT(table.geometry) AS XY, --wkt point xy
ST_ASTEXT(ST_TRANSFORM(table.geometry,4674)) AS LongLat --using st_transform to get wkt with longitude and latitude (4674 is the SIRGAS 2000 SRC by south america)
FROM
table 

2

1
फ़ील्ड को ठीक से अलग करने के लिए आपको, * के बाद, को जोड़ने की आवश्यकता हो सकती है: SELECT *, ST_AsText (the_geom) FROM table2 से;
पियरे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.