MySQL डॉक्स में कहते हैं ST_Distance_Sphere
गणना एक गोलाकार पृथ्वी और एक विन्यास त्रिज्या का उपयोग करती है। वैकल्पिक त्रिज्या तर्क को मीटर में दिया जाना चाहिए। यदि छोड़ा गया है, तो डिफ़ॉल्ट त्रिज्या 6,370,986 मीटर है। यदि त्रिज्या तर्क मौजूद है, लेकिन सकारात्मक नहीं है, तो एक
ER_WRONG_ARGUMENTS
त्रुटि होती है।
PostGIS के डॉक्स में कहते हैं ST_Distance_Sphere
, (हालांकि डॉक्स अब सटीक नहीं हैं )
6370986 मीटर की एक गोलाकार पृथ्वी और त्रिज्या का उपयोग करता है।
उन्होंने डिफ़ॉल्ट 6,370,986 मीटर कहां से प्राप्त किया? WGS84 का कहना है कि प्रमुख-अक्ष त्रिज्या 6,378,137.0 मीटर है। PostGIS जो अब एक औसत त्रिज्या का उपयोग करता है अनिवार्य रूप से 6371008 का उपयोग करता है।
#define WGS84_MAJOR_AXIS 6378137.0
#define WGS84_INVERSE_FLATTENING 298.257223563
#define WGS84_MINOR_AXIS (WGS84_MAJOR_AXIS - WGS84_MAJOR_AXIS / WGS84_INVERSE_FLATTENING)
#define WGS84_RADIUS ((2.0 * WGS84_MAJOR_AXIS + WGS84_MINOR_AXIS ) / 3.0)
इसका मतलब है कि
-- SELECT 6378137.0 - 6378137.0 / 298.257223563;
WGS84_MINOR_AXIS = 6356752.314245179498
-- SELECT ( 2.0 * 6378137.0 + ( 6378137.0 - 6378137.0 / 298.257223563) ) / 3.0;
WGS84_RADIUS = 6371008.771415059833
नए संस्करण बहुत कम कुशल, अधिक जटिल हैं, और Pro4j का उपयोग करते हैं, लेकिन वे एक ही काम करते हैं।
फिर भी 6370986 कहाँ से आता है?
(2*minorAxis+majorAxis)/3
... हालांकि WGS84 के लिए यह मूल्य अभी भी कुछ मीटर बड़ा है (6,371,008.771)