PostGIS में एक GEOGRAPHY डेटा प्रकार से लोनल लैट मान प्राप्त करें


16

GEOGRAPHY डेटा प्रकार के रूप में lon lat मानों को संग्रहीत करने के बाद, मैं व्यक्तिगत lat lon मान कैसे प्राप्त करूं?

असफल प्रयास:

SELECT id, geog, ST_X(geog), ST_Y(geog) FROM locations;

त्रुटि:

No function matches the given name and argument types. You might need to add explicit type casts.

1
के लिए भूगोल डेटाप्रकार उपयोग वैध समारोह, पूर्व। ST_MaxX () और ST_MaxY ()
पीटर क्रस

जवाबों:


20

ST_X (बिंदु) समारोह केवल ज्यामिति का समर्थन करता है (अब के लिए के रूप में)।

एक वर्कअराउंड का उपयोग करके जियॉग को जियोम में डालना है ::geometry

आपकी क्वेरी इस तरह होनी चाहिए:

SELECT id, geog, ST_X(geog::geometry), ST_Y(geog::geometry) FROM locations; 

और चूंकि यह geog है SRID 4326 होगा ।

यहाँ भी जियोग प्रकार के लिए एक अच्छा स्रोत है।


धन्यवाद आपका समाधान अच्छी तरह से काम करता है (जब pgAdmin3 का उपयोग करके क्वेरी करता है)। हालांकि जब मैं PHP (nginx + php5-fpm) से क्वेरी कर रहा हूं, तो मुझे त्रुटि मिलती है Undefined object: 7 ERROR: type "geometry" does not exist:। कोई विचार? stackoverflow.com/questions/15780931/…
Nyxynyx

अच्छा है, यह मेरे लिए अच्छा काम करता है।
फेलिप

1

कलाकारों की जरूरत नहीं

इस क्वेरी का उपयोग करने का प्रयास करें।

SELECT ST_XMax(geog), ST_YMax(geog), ST_AsEWKT(geog)
FROM locations LIMIT 10;

इससे मेरा काम बनता है।


1
PostGIS और PostgreSQL संस्करण क्या आप उपयोग कर रहे हैं? 9.5 और 2.2 के साथ, क्वेरी चलाना SELECT ST_XMax(ST_GeographyFromText('SRID=4326;POINT(-73.968504 40.779741)'));मुझे देता है ERROR: function st_xmax(geography) does not exist
r0estir0bbe

0

इस क्वेरी का उपयोग करने का प्रयास करें।

SELECT X(the_geom), Y(the_geom), ST_AsEWKT(the_geom)
      FROM locations LIMIT 10;

मुझे उम्मीद है इससे आपको मदद मिली होगी


1
X()और Y()कार्यों का अस्तित्व नहीं है। कहां से लाए वो?
ज़ोल्टन

@ Zoltán मुझे लगता है X()और Y()PostGIS के एक पुराने संशोधन में मान्य हैं - शायद 8.x ?. अद्यतित, उस क्वेरी का उपयोग करेगा ST_X()और ST_Y()इसके बजाय।
elrobis

यहां तक ​​कि PostGIS 2.2 का कोई ST_X ( भूगोल ) नहीं है, देखें postgis.net/docs/manual-2.2/ST_X.html
पीटर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.