Maps JavaScript API इन निर्देशांक सिस्टम का इस्तेमाल करता है:
- अक्षांश और देशांतर की वैल्यू, जो दुनिया के किसी खास हिस्से को दिखाती हैं. (Google, World Geodetic System WGS84 स्टैंडर्ड का इस्तेमाल करता है.)
- विश्व निर्देशांक, जो मैप पर किसी बिंदु का अलग से संदर्भ देते हैं.
- Pixel निर्देशांक, जो किसी खास ज़ूम लेवल पर मैप पर किसी खास पिक्सल की जानकारी देते हैं.
- टाइल निर्देशांक, जो किसी खास ज़ूम लेवल पर मैप पर किसी खास टाइल के बारे में बताते हैं.
विश्व निर्देशांक
जब भी एपीआई को दुनिया की किसी जगह को मैप पर मौजूद किसी जगह पर ले जाना होता है, तो वह पहले अक्षांश और देशांतर की वैल्यू को world निर्देशांक में बदलता है. इस अनुवाद को लागू करने के लिए एपीआई, मीटरेटर प्रोजेक्शन का इस्तेमाल करता है.
पिक्सल के कोऑर्डिनेट की गिनती के लिए, (नीचे देखें) हमें लगता है कि ज़ूम लेवल 0 पर मैप, बेस टाइल के साइज़ की एक टाइल है. इसके बाद, ज़ूम लेवल 0 पर पिक्सल निर्देशांकों के हिसाब से दुनिया के निर्देशांक तय किए जाते हैं. इसके लिए, प्रोजेक्शन का इस्तेमाल करके बेस टाइल पर अक्षांश और देशांतर को पिक्सल पोज़िशन में बदला जाता है. यह वर्ल्ड कोऑर्डिनेट एक फ़्लोटिंग पॉइंट वैल्यू है, जिसे मैप प्रोजेक्शन की शुरुआत से खास जगह तक मापा गया है. ध्यान दें कि यह वैल्यू एक फ़्लोटिंग पॉइंट वैल्यू है, इसलिए यह मैप इमेज के मौजूदा रिज़ॉल्यूशन से ज़्यादा सटीक हो सकती है. विश्व का निर्देशांक दूसरे शब्दों में, मौजूदा ज़ूम लेवल से अलग होता है.
Google Maps में दुनिया के निर्देशांक को मर्केटर प्रोजेक्शन की शुरुआत की जगह से (180 डिग्री, और 85 डिग्री अक्षांश
पर मैप के उत्तर-पश्चिम कोने से) मापा जाता है. साथ ही, पूर्व की ओर x
दिशा में बढ़ाया जाता है और दक्षिण की ओर y
दिशा में बढ़ाया जाता है. 'Google मैप' की बुनियादी टाइल 256 x 256 पिक्सल की है, इसलिए दुनिया कोऑर्डिनेट करने के लिए
इस्तेमाल किया जाने वाला स्पेस {0-256}, {0-256}
है.
ध्यान दें कि मर्केटर प्रोजेक्शन की लंबाई सीमित होती है, लेकिन ऊपर की ओर ऊंचाई कभी भी नहीं दिखती. मैप को आकार देने के लिए स्क्वेयर बनाने के लिए, हमने मर्केटर प्रोजेक्शन का इस्तेमाल करके, आधार इमेज को करीब 85 डिग्री पर काट दिया. इससे, टाइल चुनने में आसानी हुई. उदाहरण के लिए, अगर आप ध्रुवों के बहुत आस-पास हैं, तो अनुमान बेस मैप के इस्तेमाल करने लायक निर्देशांक स्पेस के बाहर विश्व निर्देशांक का निर्माण कर सकता है.
Pixel निर्देशांक
Pixel के निर्देशांक, मैप पर किसी खास ज़ूम लेवल पर किसी खास पिक्सल की जानकारी देते हैं. वहीं, दुनिया के निर्देशांक दिए गए प्रोजेक्शन की पूरी लोकेशन दिखाते हैं. पिक्सल के निर्देशांक इस फ़ॉर्मूला से कैलकुलेट किए जाते हैं:
pixelCoordinate = worldCoordinate * 2zoomLevel
ऊपर दिए गए समीकरण में, ध्यान दें कि ज़ूम करने का हर लेवल {0/} x
और y
दोनों निर्देशों की तुलना में दोगुना बड़ा है. इसलिए, ज़ूम का हर लेवल ज़्यादा होने पर रिज़ॉल्यूशन, पिछले लेवल से चार गुना ज़्यादा होता है. उदाहरण के लिए, ज़ूम लेवल 1 पर,
मैप में 2,266x256 पिक्सल की टाइल मौजूद हैं. इसकी वजह से,
512x512 की पिक्सल खाली जगह दिख रही है. ज़ूम लेवल 19 पर, मैप पर मौजूद हर x
और y
पिक्सल के बारे में
0 और 256 * 219 के बीच के किसी मान का इस्तेमाल करके बताया जा सकता है.
मैप पर मौजूद टाइल के साइज़ के हिसाब से, दुनिया के निर्देशांक तय किए जाते हैं. इसलिए, पिक्सल के निर्देशांक के पूर्णांक वाले हिस्से का असर, मौजूदा ज़ूम लेवल पर उस जगह पर मौजूद सटीक पिक्सल की पहचान करने पर पड़ता है. ध्यान दें कि ज़ूम लेवल 0 के लिए, पिक्सल के निर्देशांक दुनिया के निर्देशांकों के बराबर होते हैं.
अब हमारे पास मैप पर हर जगह को ज़ूम लेवल पर दिखाने की सुविधा है. Maps JavaScript API, मैप का ज़ूम लेवल सेंटर (जैसा कि LatLng
है) और उसमें शामिल DOM एलिमेंट के साइज़ को ध्यान में रखते हुए व्यूपोर्ट बनाता है और इस बाउंडिंग बॉक्स को पिक्सल के निर्देशांक में बदल देता है. इसके बाद, एपीआई तार्किक तौर पर उन सभी टाइल को तय करता है जो दी गई पिक्सल की सीमाओं में होती हैं. इनमें से हर मैप टाइल, टाइल कोऑर्डिनेट का इस्तेमाल करके बताई गई हैं. इससे मैप इमेज को आसानी से दिखाया जा सकता है.
टाइल निर्देशांक
उच्च ज़ूम स्तर के लिए API एक बार में सभी मैप इमेजरी लोड नहीं कर सकता. इसके बजाय, एपीआई हर ज़ूम लेवल पर तस्वीरों को मैप टाइल के सेट में बांट देता है. ये सेट तार्किक रूप से उस क्रम में लगाए जाते हैं जिसमें ऐप्लिकेशन इसे समझता है. जब कोई मैप स्क्रोल करके किसी नई जगह या किसी नए ज़ूम लेवल पर जाता है, तो एपीआई तय करता है कि पिक्सल निर्देशांकों का इस्तेमाल करके किन टाइल की ज़रूरत होगी. इसके बाद, एपीआई फिर से पाने के लिए उन वैल्यू को टाइल के सेट में बदल देता है. ये टाइल निर्देशांक एक स्कीम का इस्तेमाल करके असाइन किए जाते हैं, जिससे तार्किक रूप से यह तय करना आसान हो जाता है कि किस टाइल में दिए गए किसी भी बिंदु के लिए तस्वीरों का संग्रह मौजूद है.
Google Maps में टाइलों को उसी ऑरिजिन से नंबर किया जाता है जिसका इस्तेमाल
पिक्सल के लिए किया जाता है. Google के मर्केटर प्रोजेक्शन को लागू करने के लिए, मूल टाइल हमेशा मैप के उत्तर-पश्चिम कोने में होती है, जहां x
की वैल्यू पश्चिम से पूर्व की ओर और
y
की वैल्यू उत्तर से दक्षिण की ओर बढ़ती है. टाइल
को इस ऑरिजिन से x,y
निर्देशांक का इस्तेमाल करके इंडेक्स किया जाता है. उदाहरण के लिए, ज़ूम लेवल 2 में, पृथ्वी को 16 टाइल में बांटने पर, हर टाइल को एक खास x,y
पेयर से दिखाया जा सकता है:
ध्यान दें कि पिक्सल के निर्देशांक को टाइल के साइज़ (256) से भाग देकर, नतीजों के पूर्णांक वाले हिस्सों को भाग देकर, आप मौजूदा ज़ूम लेवल पर एक सब-प्रॉडक्ट के तौर पर टाइल के कोऑर्डिनेट का इस्तेमाल करें.
उदाहरण
यहां दिए गए उदाहरण में, शिमला, आईएल के लिए निर्देशांक दिखेंगे: अक्षांश/देशांतर की वैल्यू, दुनिया के निर्देशांक, पिक्सल के निर्देशांक, और टाइल के निर्देशांक. ज़ूम के अलग-अलग लेवल पर निर्देशांक वैल्यू देखने के लिए, ज़ूम कंट्रोल का इस्तेमाल करें.
निर्देशांकों की गणना करने का तरीका देखने के लिए, कोड देखें.