ST_Distance () में प्रयुक्त इकाई क्या है?


24

मुझे आश्चर्य है कि इकाई क्या है फ्लोट से लौटा जा रहा है ST_Distance

प्रलेखन में यह कहता है:

... अनुमानित इकाइयों में दो ज्यामितीयों के बीच कार्टेशियन न्यूनतम दूरी (स्थानिक रेफ पर आधारित)।

ये अनुमानित इकाइयाँ क्या हैं?

ज्यामिति को एक क्षेत्र में संग्रहीत किया जाता है geometry(Point,4326):।

जवाबों:


36

मुझे लगता है कि यह समय के साथ PostGIS सूची पर सबसे लगातार सवाल है :-)

यदि आपका डेटा SRID 4326 में है और आप geometryटाइप करते हैं तो परिणाम कोई अर्थ नहीं देगा। यह डिग्री में है।

मीटर में परिणाम प्राप्त करने के लिए बस geographyटाइप करने के लिए डाला जाता है और ST_Distanceइसके बजाय महान सर्कल के साथ दूरी की गणना करेगा और मीटर में वापस आ जाएगा।

geometry(Point,4326)::geography

एक अन्य विकल्प आपके डेटा को एक उपयुक्त इकाई के आधार पर कुछ स्थानीय प्रक्षेपण के लिए प्रोजेक्ट करना है। फिर उत्तर उस इकाई में होगा।


2
एक तालिका में दो पंक्तियों के बीच की दूरी को खोजने के लिए एक उदाहरण है सेलेक्ट ST_Distance (a.geom :: geography, b.geom :: geography) से, शुद्ध_गिस से, विशुद्ध_गिस b WHERE a.id = '1' और b.id = '2';
ब्रायन मैकल

4

से http://postgis.net/docs/ST_Distance.html

- ज्यामिति उदाहरण - प्लानेर डिग्री 4326 में इकाइयाँ WGS 84 लंबी अक्षांश इकाई = डिग्री है

यदि ST_Distanceदो जिओमेट्री दी जाती हैं, तो यह मान लिया जाता है कि जिओमेट्री वास्तव में कार्टेशियन (या प्लेनर) निर्देशांक में हैं। इस प्रकार, इकाइयां निर्देशांक में समान हैं - आमतौर पर मीटर या पैर।

आपकी समस्या यह प्रतीत होती है कि आपकी स्थानिक संदर्भ प्रणाली, 4326, वास्तव में (कोणीय) भौगोलिक निर्देशांक - डिग्री लंबी-अक्षांश का उपयोग करती है - इसलिए परिणाम (कुछ हद तक अर्थहीन) डिग्री में हैं।


1
परिणाम पूरी तरह से व्यर्थ हैं, कुछ हद तक भी नहीं।
पॉल रैमसे

@PaulRamsey। क्या वे वही नहीं होंगे जो मुझे प्लेटक्री प्रोजेक्शन पर "माप" दूरी के रूप में मिलेगा?
मार्टिन एफ

एक पीसी पर, आपको रैखिक इकाइयाँ वापस मिलेंगी और कम से कम "ठीक है, मुझे पता है कि ये इकाइयाँ गंभीर विकृति के अधीन हैं"। "डिग्री" वापस पाने के लिए, लोगों को यह सोचने के लिए लुभाया जा सकता है "अहा, मेरे पास यहां एक कोणीय दूरी है, बस 2R से गुणा करने की आवश्यकता है और मेरे पास एक रैखिक दूरी होगी"। इकाइयाँ खराब माप को संभावित रूप से और भी भ्रामक बनाती हैं। और पीसी बहुत भयानक है मुझे नहीं पता कि इसे प्रक्षेपण नाम क्यों मिलता है ... दूरी को संरक्षित नहीं करता है, दिशा को संरक्षित नहीं करता है, क्षेत्र को संरक्षित नहीं करता है ...
पॉल रैमसे

पीसी भूमध्य रेखा के साथ भूमध्य रेखा और लंबवत दूरी को बनाए रखता है। आवश्यक रेडियन और त्रिज्या रूपांतरणों के अलावा (आमतौर पर, एक बहुत बड़ी असुविधा), 4326 ज्यामिति पर ST_Distance का उपयोग करने के परिणामों में नुकसान और लाभों का एक ही सामान्य मिश्रण होगा जो कि प्रक्षेपण ज्यामितीय के साथ__Distance का उपयोग करते समय विचार किया जाना चाहिए। शायद बेहतर बहस होनी चाहिए ("कुछ हद तक" बनाम "पूरी तरह से अर्थहीन" लेकिन) "क्या ST_Distance और ST_Area को भी 4326 ज्यामितीय दिए गए परिणामों को वापस करने की अनुमति दी जानी चाहिए?"
मार्टिन एफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.