क्या यह वही wkb-प्रारूप है जो आप चाहते हैं?
select ST_AsWKB('geog') from locations
लेकिन आप दूरी-गणना करने के लिए पहले डेटा क्यों निकालना चाहते हैं?
/निकलास
अपडेट करें
ठीक है
मुझे नहीं पता कि आपको अपने प्रश्नों का उचित परिणाम क्यों नहीं मिलता है। मैं PHP में बहुत बुरा हूँ। मुझे लगता है कि किसी कारण से परिणाम कुछ डेटा प्रकार में धकेल दिया जाता है जो सही नहीं है। मेरा मतलब है ST_AsText से आपको बस एक स्ट्रिंग मिलनी चाहिए, इससे ज्यादा अजीब कुछ नहीं।
लेकिन अपनी दूरी पाने के लिए आपको अंक नहीं निकालने चाहिए। ऐसा करने के लिए आप सेल्फ जॉइन करें। PostGIS का उपयोग करते समय और एक ही तालिका में विभिन्न ज्यामिति की तुलना करते समय आप हर समय यही करते हैं।
मान लें कि पहले भूगोल में id=1 है और दूसरे में id=2 है, क्वेरी कुछ इस तरह हो सकती है:
SELECT ST_Distance(a.the_geog, b.the_geog) as dist
from locations a, locations b WHERE a.id=1 and b.id = 2;
यदि आप id=1 के साथ बिंदु से सभी बिंदुओं (या जो भी हो) की दूरी चाहते हैं तो आप लिख सकते हैं:
SELECT ST_Distance(a.the_geog, b.the_geog) as dist
from locations a inner join locations b on a.id != b.id WHERE a.id=1;
और इसी तरह।
यह बहुत अधिक प्रभावी होगा।
/निकलास