2010-09-19 15 views
5

मेरे पास कुछ शहरों के भू-निर्देशांक (लैटिड्यूट & देशांतर) हैं और x, y निर्देशांक प्राप्त करना चाहते हैं ताकि उन्हें मानचित्र में प्लॉट कर सकें।नक्शा भू-निर्देशांक (लैट, एलएनजी) मानचित्र (x, y)

मानचित्र एक स्टैंडअलर्ट है, उदाहरण के लिए http://www.wordtravels.com/images/map/Spain/Fuerteventura_map.jpg जैसा।

मैं कई फ़ॉर्म्यूलर मैंने पाया की कोशिश की, लेकिन कोई भी :(वास्तव में काम करने के लिए लगता है। सरल जावास्क्रिप्ट कोड या गहरे लाल रंग का सबसे अच्छा :)

उत्तर

2

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

+1

, आगे सोच अपने बिटमैप संभालने के लिए एक मानक प्रक्षेपण है, यह काम करना चाहिए, लेकिन आप अपने खुद के प्रक्षेपण मानकों (मध्याह्न, स्केलिंग, आदि) का निर्धारण करने के लिए होगा। यह संभव होना चाहिए, लेकिन हो सकता है कि नक्शा प्रक्षेपण नौसिखिए के लिए न हो। – winwaed

+1

धन्यवाद, मैं उल्लिखित पुस्तकालय से आवश्यक सूत्रों को निकालने में सक्षम था :) – gucki

0

आप इसे आसान जब तक आप एक बहुत छोटे से काम कर रहे हैं नहीं मिलेगा होगा पैमाने (और भूमध्य रेखा के करीब)। विकिपीडिया का Geographic coordinate system एक अच्छी शुरुआत है ...

web mapping जैसे कुछ का उपयोग करने के लिए आसान मार्ग हो सकता है और आपके अक्षांश और अक्षांश के साथ चिपक सकता है।

1

Google मानचित्र API का उपयोग करें, आप मानचित्र पर अपना jpg ओवरले कर सकते हैं और इसे सही तरीके से स्थिति दे सकते हैं।

यहाँ एक उदाहरण http://code.google.com/apis/maps/documentation/javascript/examples/overlay-hideshow.html

है और यहाँ ओवरले http://code.google.com/apis/maps/documentation/javascript/overlays.html

3

वहाँ परिशुद्धता की डिग्री बदलती के साथ इस समस्या के दृष्टिकोण के कई तरीके हैं के बारे में API पृष्ठ है। हालांकि, वे सभी एक प्रक्षेपण करने के लिए उबालते हैं जो आपके मानचित्र के अनुरूप होता है।

यदि आप जानते हैं कि आपका नक्शा मर्केटर प्रक्षेपण विविधता का है, तो अक्षांश/लंबे निर्देशांक को आसानी से एक्स/वाई के रूप में माना जा सकता है, जिसे स्केल किया गया और उचित रूप से अनुवाद किया जा सकता है। यही है, आपको एक साधारण कुल्हाड़ी + बी और साइ + डी मिल जाएगा जो नौकरी करता है।

यदि आपका नक्शा मर्केटर-प्रक्षेपण नहीं है (जैसा कि संभवतः यह नहीं है कि यह स्केल संगत होने की कोशिश करता है, जैसा कि ऐसा लगता है) तो आपकी सबसे अच्छी शर्त यह मानना ​​है कि यह "धरती-स्पर्श" प्रक्षेपण है । (यह छोटे मकान मालिकों के लिए ठीक काम करता है।) उस स्थिति में, आपको पहले लेट/लांग को त्रि-आयामी समन्वय प्रणाली में प्रोजेक्ट करना होगा।

z=sin(lat) 
x=cos(lat)*sin(long) 
y=cos(lat)*cos(long) 

सकारात्मक ध्रुव उत्तर ध्रुव को इंगित करता है। सकारात्मक वाई 0, 0, और सकारात्मक एक्स अंक 0 0 9 0 (पूर्व) और सकारात्मक अक्षांश/उत्तर उत्तर और पूर्व में इंगित करता है। बेशक आपको पहले रेडियंस में परिवर्तित करना होगा।

यह सब एक गोलाकार पृथ्वी मानता है, जो बिल्कुल सही नहीं है लेकिन यह तब तक पर्याप्त है जब तक आप लंबी दूरी के मोर्टार राउंड को फायर नहीं कर लेते।

वैसे भी, आपके XYZ होने के बाद, आपको नक्शे के लिए घूमने और स्केल करने की आवश्यकता होगी। ज़ेड अक्ष के चारों ओर घुमाने के लिए, तीन आयामों में प्रोजेक्ट करने से पहले बस बेस रेखांश घटाएं। सबसे आसान गणित के लिए शून्य-देशांतर पर अपने मानचित्र को केन्द्रित करने के लिए ऐसा करें।

एक बार ऐसा करने के बाद, आपको केवल तब तक दुनिया को घूमने की आवश्यकता होगी जब तक आपका मूल मानचित्र सामने न हो। वाई-जेड अक्ष में 2-डी रोटेशन के साथ ऐसा करें। उस भाग को समझने के लिए http://en.wikipedia.org/wiki/Coordinate_rotations_and_reflections का उपयोग करें।

अंत में, आपके एक्स, जेड निर्देशांक पहले वर्णित उचित पैमाने/अनुवाद के लिए आपके मानचित्र के एक्स, वाई निर्देशांक के साथ बहुत अच्छी तरह से लाइन करने जा रहे हैं।

1

शायद इससे मदद मिलेगी, मैंने केवल जावास्क्रिप्ट का उपयोग करके अमेरिका के लिए कार्यान्वयन किया है।

डेमो/कोड: http://the55.net/_11/sketch/us_map

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