language agnostic - दूरी की गणना के लिए हार्वेसिन फॉर्मूला या विन्सेन्सी का फॉर्मूला बेहतर है?




language-agnostic geospatial (2)

हावेर्सिन एक सरल गणना है लेकिन यह उच्च सटीकता विन्सिति ऑफर प्रदान नहीं करता है।

विन्सेनी अधिक सटीक है लेकिन यह अधिक कम्प्यूटेशनल रूप से गहन है और इसलिए धीमी गति से और बैटरी उपयोग को बढ़ाया जाएगा।

जैसा कि कुछ भी "बेहतर" है, यह आपके विशेष आवेदन का मामला है आपके आवेदन के लिए, विन्सेनी हावेर्सिन की तुलना में "बेहतर" विकल्प हो सकती है, लेकिन एक अलग आवेदन के लिए, हावरिन एक बेहतर विकल्प हो सकता है। आपको अपने उपयोग के मामलों के विवरणों को देखना होगा और आपको वहां क्या मिलेगा, इसके आधार पर दृढ़ निश्चय बनायेगा।

जो दो अक्षांश / रेखांकित बिंदुओं के बीच की दूरी की गणना करने के लिए बेहतर है, द हासर्स फॉर्मूला या द विनसेंटी का फॉर्मूला? क्यूं कर?

स्पष्ट रूप से पृथ्वी पर दूरी की गणना की जा रही है। क्या WGS84 बनाम जीसीजे02 निर्देशांक गणना या दूरी को प्रभावित करता है (विन्सेन्टी का सूत्र WGS84 अक्ष को ध्यान में रखता है)?

उदाहरण के लिए, एंड्रॉइड में, हार्वेसिने फॉर्मूला का उपयोग Google मानचित्र यूटिलस में किया जाता है, लेकिन विन्सेन्सी फॉर्मूला एंड्रॉइड द्वारा उपयोग किया जाता है। Location.distanceBetween() ऑब्जेक्ट ( Location.distanceBetween() )


अलग-अलग समस्याओं को सुलझाने के लिए दो अल्गोरिदम हैं Haversine और Vincenty हावर्सन एक क्षेत्र पर महान चक्र की दूरी की गणना करता है जबकि विन्सेन्सी क्रांति के दीर्घवृत्त की सतह पर सबसे कम (गियोडेसिक) दूरी की गणना करता है। तो आपके प्रश्न का उत्तर 2 भागों में तोड़ा जा सकता है:

  1. क्या आप एक दीर्घवृत्त पर एक क्षेत्र पर दूरी की गणना करना चाहते हैं?
  2. दी गई समस्या की गणना करने पर हार्वेसिन या विन्सेनी कितनी सटीक है?

स्थलीय अनुप्रयोगों के लिए, क्रांति का एक दीर्घवृत्त "समुद्र स्तर का मतलब" के लिए उचित अनुमान है; त्रुटि ± 100 मीटर है इस दीर्घवृत्त का सपाट छोटा है, लगभग 1/300, और इसलिए एक गोलाकार (बराबर मात्रा का, उदाहरण के लिए) द्वारा अनुमानित किया जा सकता है।

ग्रेट सर्कल की दूरी geodesic दूरी से 0.5% तक भिन्न होती है। कुछ अनुप्रयोगों में, उदाहरण के लिए केप से काहिरा की दूरी क्या है ?, इस त्रुटि की उपेक्षा की जा सकती है अन्य अनुप्रयोगों में, उदाहरण के लिए, समुद्री सीमाओं का निर्धारण, यह बहुत बड़ा है (यह 1 किमी की दूरी पर 5 मीटर है)। सामान्य तौर पर, आप जियोडेसिक दूरी का उपयोग कर सुरक्षित होते हैं।

अगर आपको दिलचस्पी हो रही है (कार, नाव या विमान द्वारा) दूरी की यात्रा की है, तो पथ पर बहुत सी बाधाएं हैं और न ही महान सर्कल या भूगर्भिक दूरी, जो आदर्श सतह पर कम से कम रास्ते की लंबाई को मापते हैं उचित।

एल्गोरिदम सटीक हैं या नहीं इस सवाल पर:

हार्वेसिन राउंड-ऑफ के लिए सटीक है, जब तक कि पॉइंट लगभग एंटीपोडल न हो। महान-चक्र दूरी पर विकिपीडिया लेख में बेहतर फ़ार्मुले दिए गए हैं

Vincenty आमतौर पर लगभग 0.1 मिमी के लिए सटीक है। हालांकि, यदि बिन्दु लगभग एंटीपोडल हैं, तो एल्गोरिथ्म एकाग्र होने में विफल रहता है और त्रुटि बहुत बड़ी है। मैं जीओडीएसिक्स के लिए एल्गोरिदम में भूगर्भीय समस्या को सुलझाने के लिए एक बेहतर एल्गोरिथ्म देता हूं। एक दीर्घवृत्त पर जिओदिक्सिक्स पर विकिपीडिया लेख भी देखें

महान-चक्र के लिए हल करने की तुलना में भूगर्भीय समस्या का समाधान करना धीमा है लेकिन यह अभी भी बहुत तेजी से (प्रति गणना के बारे में 1 μs) है, इसलिए यह महान चक्र दूरी को पसंद करने का कोई कारण नहीं होना चाहिए।

ADENDUM

यहां जावा पैकेज है जो जियोडेसिक दूरी को खोजने के लिए मेरे एल्गोरिदम का कार्यान्वयन करता है। विन्सेनी की विधि के विपरीत, यह गोल-बंद करने के लिए सटीक है और हर जगह एकजुट होता है।





trigonometry