2010-10-28 17 views
5

मुझे मानचित्र का उपयोग करके एक महान सर्कल दूरी गणना के साथ कुछ समस्याएं हैं।अजीब ग्रेट सर्कल दूरी गणना

प्रसंग: http://airports.palzkill.de/search/

नक्शा एक महान चक्र दूरी खोज नक्शे के रूप में काम करने के लिए माना जाता है - आप हलकों केंद्र मार्कर या त्रिज्या मार्कर ले जाते हैं, और चक्र छोटा या बड़ा हो जाता है। डिबग उद्देश्यों के लिए, बक्से शीर्षक क्षेत्र किमी में गणना की दूरी दिखाता है।

यह केवल तब तक ठीक काम करता है जब तक सर्कल सेंटर 0/0 के करीब न हो, और त्रिज्या मार्कर इससे बहुत दूर नहीं है। जितना अधिक आप मार्करों को "चरम सीमा" में ले जाते हैं, उतना अधिक स्पर्श करने वाली चीज़ पूरी चीज जाती है और बकवास के अलावा कुछ भी नहीं बनाती है।

इस अद्यतन गणना के लिए इस्तेमाल कोड है, आप भी, जे एस फ़ाइल js.js में पूरे कोड ढूँढ सकते हैं लाइनों 146 184 करने के लिए:

function searchmapupdate() 
{ 
rad_lat_radiuspos = (circleradiusmarker.getPosition().lat()*Math.PI/180); 
rad_lon_radiuspos = (circleradiusmarker.getPosition().lng()*Math.PI/180); 
rad_lat_circlecenter = (circlecentermarker.getPosition().lat()*Math.PI/180); 
rad_lon_circlecenter = (circlecentermarker.getPosition().lng()*Math.PI/180); 

circleradiusvar = Math.acos(Math.sin(rad_lat_circlecenter)*Math.sin(rad_lat_radiuspos)+Math.cos(rad_lat_circlecenter)*Math.cos(rad_lon_radiuspos)*Math.cos(rad_lon_circlecenter-rad_lon_radiuspos))*6371.01*1000; 

if (isNaN(circleradiusvar)==false) circle.setOptions({center:circlecentermarker.getPosition(), radius:circleradiusvar}); 

document.getElementById("mapsearchhead").innerHTML = Math.round(circleradiusvar/1000); 
} 

के बाद से पूरी बात कुछ सही उत्पादन की गणना करता है मुझे लगता है कि गणित स्वयं पूरी तरह गलत नहीं है, मुझे लगता है कि कुछ "सुधारक" चीजें गायब हैं? दुर्भाग्यवश मैं त्रिकोणमिति में बिल्कुल हंसमुख हूं, इसलिए मेरे पास कोई संकेत नहीं है कि यहां क्या गलत हो सकता है, या यहां तक ​​कि इसे ठीक करने के तरीके के बारे में विचारों को खोजना शुरू करना है।

मार्को

पी.एस .: मुझे पता है कि प्रक्षेपण के गोलाकार प्रकृति के कारण, पूरी बात "जवाबी सहज ज्ञान युक्त" ध्रुवों के आसपास कार्य करने के लिए है। लेकिन यह वास्तव में समझाता नहीं है कि जब आप भूमध्य रेखा के चारों ओर दिनांक रेखा के करीब दोनों मार्करों को स्थानांतरित करते हैं तो क्या होता है (0/179, 0/-179)।

+0

एक उच्च स्तरीय दृश्य से, मैंने देखा कि आपका सर्कल फ़ंक्शन पूरी तरह से काम करता है जब केंद्र मार्कर मानचित्र के केंद्र में होता है। ऐसा लगता है कि जिस तरह से आप नक्शे के किनारे से निपट रहे हैं, वैसे ही गणित त्रुटि नहीं है। –

+0

हां सैम, मैंने वही देखा: समस्या वास्तव में तिथि रेखा/180 वें मेरिडियन में जितनी करीब जाती है उतनी ही खराब होती है। चूंकि यह कम से कम 0/0-संगम के आसपास है, मुझे लगता है कि गणित स्वयं वास्तव में सही है, लेकिन मुझे लगता है कि मुझे कुछ सुधारक मूल्य की आवश्यकता है। –

उत्तर

3

ठीक है, कुछ और कोड लागू करने के बाद, मुझे वास्तव में समीकरण में एक त्रुटि मिली: लोन का उपयोग जहां मुझे लैट का उपयोग करना चाहिए था।

और हाँ, मैं अब बहुत शर्मिंदा हूं - और समान रूप से नाराज हूं, इस शब्द को देखने में 5 घंटे बिताए और पहले इस स्पष्ट त्रुटि को नहीं मिला।

+3

हम सब वहाँ रहे हैं। अपना फिक्स पोस्ट करने के लिए धन्यवाद। – GreenMatt