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.