2013-04-28 13 views
9

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

मैं जवाब का परीक्षण करने के लिए इन चरणों का पालन कर रहा हूं: (1) सबसे पहले, मैं दो पदों को लेता हूं और नक्शे का उपयोग करके उनके बीच की दूरी की गणना करता हूं। (2) फिर दो पदों को एक्स, वाई निर्देशांक में परिवर्तित करें। (3) फिर x, y निर्देशांक में दो बिंदुओं के बीच की दूरी की गणना करें और देखें कि यह मुझे बिंदु (1) या नहीं में एक ही परिणाम देता है या नहीं।

समाधान में से एक मुझे निम्नलिखित मिला, लेकिन यह मुझे सही जवाब नहीं देता है!

latitude = Math.PI * latitude/180; 
longitude = Math.PI * longitude/180; 

// adjust position by radians 
latitude -= 1.570795765134; // subtract 90 degrees (in radians) 

// and switch z and y 
xPos = (app.radius) * Math.sin(latitude) * Math.cos(longitude); 
zPos = (app.radius) * Math.sin(latitude) * Math.sin(longitude); 
yPos = (app.radius) * Math.cos(latitude); 

मैंने भी इस link को आजमाया लेकिन अभी भी मेरे साथ काम नहीं किया!

किसी भी मदद से (अक्षांश, देशांतर) से (x, y) में परिवर्तित करने के लिए कोई मदद कैसे करें?

धन्यवाद,

उत्तर

23

कोई सटीक समाधान मौजूद है

विमान को क्षेत्र से कोई सममितीय नक्शा नहीं है। जब आप विमान में अक्षांश से एक्स/वाई समन्वय में अक्षांश/लोन निर्देशांक परिवर्तित करते हैं, तो आप उम्मीद नहीं कर सकते कि सभी लंबाई इस ऑपरेशन द्वारा संरक्षित की जाएगी। आपको किसी प्रकार का विरूपण स्वीकार करना होगा। कई अलग-अलग नक्शा अनुमान मौजूद हैं, जो लंबाई, कोण और क्षेत्रों के संरक्षण के बीच विभिन्न समझौता प्राप्त कर सकते हैं। पृथ्वी की सतह के छोटे हिस्सों के लिए, transverse Mercator काफी आम है। आपने UTM के बारे में सुना होगा। लेकिन many more हैं।

सूत्र जो आप x/y/z गणना करते हैं, यानी 3 डी स्पेस में एक बिंदु उद्धृत करते हैं। लेकिन यहां तक ​​कि आपको स्वचालित दूरी स्वचालित रूप से नहीं मिलती है। क्षेत्र की सतह पर दो बिंदुओं के बीच सबसे छोटी दूरी उस क्षेत्र के माध्यम से चली जाएगी, जबकि पृथ्वी पर दूरी ज्यादातर सतह के बाद भूगर्भीय लंबाई होती है। तो वे लंबे समय तक रहेंगे। छोटे क्षेत्रों

अगर पृथ्वी जो आप आकर्षित करने के लिए चाहते हैं की सतह का हिस्सा अपेक्षाकृत छोटा है के लिए

सन्निकटन है, तो आप एक बहुत ही सरल सन्निकटन उपयोग कर सकते हैं। अक्षांश λ को इंगित करने के लिए आप अक्षांश अक्ष λ, लंबवत अक्ष y को इंगित करने के लिए क्षैतिज धुरी x का उपयोग कर सकते हैं। हालांकि, इनके बीच अनुपात 1: 1 नहीं होना चाहिए। इसके बजाय आपको पहलू अनुपात के रूप में cos (φ) का उपयोग करना चाहिए, जहां φ आपके मानचित्र के केंद्र के नज़दीकी अक्षांश को दर्शाता है। इसके अलावा, कोणों (रेडियंस में मापा गया) से लंबाई तक परिवर्तित करने के लिए, आप पृथ्वी के त्रिज्या से गुणा करते हैं (जो इस मॉडल में एक गोलाकार माना जाता है)।

  • एक्स = आर λ क्योंकि
  • (φ) y = आर φ

यह सरल equirectangular projection है।ज्यादातर मामलों में, आप केवल एक बार कॉस (φ) की गणना करने में सक्षम होंगे, जो बड़ी संख्या में बिंदुओं के बाद की गणना के बाद की गणना करता है।

+0

धन्यवाद @ एमवीजी, मैं इन विषयों से शामिल नहीं हूं, मुझे सिर्फ मानचित्र पर अंक आकर्षित करने की आवश्यकता है, इन बिंदुओं के बीच की दूरी 50 मीटर से अधिक नहीं है, क्या इसके लिए एक आसान तरीका है? – noor

+0

@ alsadi90: मैंने आपके उपयोग के मामले के लिए एक सरल अनुमान का वर्णन करने के लिए अपना उत्तर अपडेट किया। – MvG

+0

धन्यवाद, लेकिन मेरे पास ये प्रश्न हैं: यहां रेडियन में λ और φ? φ0 के बारे में, आप मुझे यह सुझाव देते हैं कि यदि मेरा क्षेत्र लगभग 50mx50m – noor

संबंधित मुद्दे