मैप और टाइल के निर्देशांक

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript

Maps JavaScript API इन निर्देशांक सिस्टम का इस्तेमाल करता है:

  • अक्षांश और देशांतर की वैल्यू, जो खास तौर पर दुनिया की किसी जगह की जानकारी देती हैं. (Google, वर्ल्ड जियोडेटिक सिस्टम WGS84 स्टैंडर्ड का इस्तेमाल करता है.
  • वर्ल्ड कोऑर्डिनेट, जो मैप पर किसी पॉइंट का खास तौर पर रेफ़रंस देते हैं.
  • पिक्सल कोऑर्डिनेट, जो मैप पर किसी खास ज़ूम लेवल पर किसी खास पिक्सल का रेफ़रंस देते हैं.
  • टाइल कोऑर्डिनेट, जो मैप पर किसी खास ज़ूम लेवल पर किसी खास टाइल का रेफ़रंस देते हैं.

विश्व निर्देशांक

जब भी एपीआई को दुनिया की किसी जगह को मैप पर किसी जगह पर अनुवाद करने की ज़रूरत होती है, तो वह सबसे पहले अक्षांश और देशांतर की वैल्यू को दुनिया कोऑर्डिनेट में बदल देता है. यह अनुवाद करने के लिए, एपीआई मर्चेंट प्रोजेक्शन का इस्तेमाल करता है.

पिक्सल कोऑर्डिनेट (नीचे देखें) की गणना में आसानी के लिए, हम मानते हैं कि ज़ूम लेवल 0 पर मैप, बेस टाइल के साइज़ की सिंगल टाइल है. इसके बाद, हम इस बेस टाइल पर अक्षांश और देशांतर को पिक्सल की स्थिति में बदलने के लिए प्रोजेक्शन का इस्तेमाल करते हैं. इसके लिए, हम ज़ूम लेवल 0 पर पिक्सल निर्देशांक के हिसाब से दुनिया के निर्देशांक तय करते हैं. वर्ल्ड कोऑर्डिनेट एक फ़्लोटिंग पॉइंट वैल्यू है. इसे मैप प्रोजेक्शन की शुरुआत से किसी खास जगह तक मापा जाता है. ध्यान दें कि यह वैल्यू एक फ़्लोटिंग पॉइंट वैल्यू है. इसलिए, यह मैप इमेज के मौजूदा रिज़ॉल्यूशन से ज़्यादा सटीक हो सकती है. दूसरे शब्दों में कहें, तो वर्ल्ड कोऑर्डिनेट, ज़ूम के मौजूदा लेवल पर निर्भर नहीं करता है.

Google Maps में, दुनिया के निर्देशांकों को मरकेटर प्रोजेक्शन की शुरुआत (180 डिग्री देशांतर और करीब 85 डिग्री अक्षांश पर मैप के उत्तर-पश्चिमी कोना) से मापा जाता है और पूर्व (दाएं) की ओर x दिशा में बढ़ने पर और दक्षिण की ओर (नीचे) y की दिशा में बढ़ने पर. Mercator Google Maps की बुनियादी टाइल 256 x 256 पिक्सल की है, इसलिए दुनिया भर में निर्देशांक के लिए इस्तेमाल की जा सकने वाली जगह {0-256}, {0-256} है.

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

पिक्सल निर्देशांक

Pixel निर्देशांक, मैप पर किसी खास ज़ूम लेवल पर किसी पिक्सल के बारे में बताते हैं, जबकि दुनिया के निर्देशांक, दिए गए प्रोजेक्शन पर किसी खास जगह को दिखाते हैं. पिक्सल निर्देशांक की गिनती इस फ़ॉर्मूला का इस्तेमाल करके की जाती है:

pixelCoordinate = worldCoordinate * 2zoomLevel

ऊपर दिए गए समीकरण से, ध्यान दें कि ज़ूम का हर बढ़ते लेवल, x और y, दोनों ही दिशाओं में दोगुना बड़ा होता है. इसलिए, हर बार ज़्यादा ज़ूम करने पर, पिछले लेवल की तुलना में चार गुना ज़्यादा रिज़ॉल्यूशन मिलता है. उदाहरण के लिए, ज़ूम लेवल 1 पर, मैप में 256x256 पिक्सल की 4 टाइल होती हैं, जिसकी वजह से 512x512 की जगह पिक्सल स्पेस मिलता है. ज़ूम लेवल 19 पर, मैप पर मौजूद हर x और y पिक्सल को 0 से 256 * 219 के बीच की वैल्यू का इस्तेमाल करके रेफ़र किया जा सकता है.

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

अब हमारे पास एक ऐसा तरीका है जिससे मैप पर हर जगह की सटीक जानकारी दी जा सकती है. ऐसा हर ज़ूम लेवल पर किया जा सकता है. Maps JavaScript API, मैप के ज़ूम लेवल सेंटर (LatLng के तौर पर) और उसमें मौजूद डीओएम एलिमेंट के साइज़ के आधार पर एक व्यूपोर्ट बनाता है. साथ ही, इस बाउंडिंग बॉक्स को पिक्सल निर्देशांक में बदल देता है. इसके बाद, एपीआई सही तरीके से उन सभी मैप टाइल को तय करता है जो दी गई पिक्सल की सीमाओं में होती हैं. इन मैप टाइल में से हर एक के बारे में टाइल कोऑर्डिनेट का इस्तेमाल किया जाता है. इससे मैप की तस्वीरों को दिखाना काफ़ी आसान हो जाता है.

टाइल निर्देशांक

एपीआई ज़्यादा ज़ूम लेवल के लिए, मैप की सभी तस्वीरों को एक साथ लोड नहीं कर सकता. इसके बजाय, एपीआई हर ज़ूम लेवल पर तस्वीरों को मैप टाइल के सेट में बांट देता है. इन्हें सही क्रम में व्यवस्थित किया जाता है, ताकि ऐप्लिकेशन समझ सके. जब कोई मैप किसी नई जगह या किसी नए ज़ूम लेवल पर स्क्रोल करता है, तो एपीआई यह तय करता है कि पिक्सल कोऑर्डिनेट का इस्तेमाल करके किन टाइल की ज़रूरत है. इसके बाद, उन वैल्यू को वापस लाने के लिए टाइल के एक सेट में बदल देता है. इन टाइल कोऑर्डिनेट को एक स्कीम का इस्तेमाल करके असाइन किया जाता है. इससे यह तय करना आसान हो जाता है कि किस टाइल में किसी पॉइंट के लिए तस्वीरें मौजूद हैं.

Google Maps में टाइल को और पिक्सल के लिए, एक ही ऑरिजिन से नंबर दिया गया है. Google, मरकेटर प्रोजेक्शन को लागू करने के लिए, मैप के उत्तर-पश्चिमी कोने पर ऑरिजिन टाइल हमेशा रखता है. इसमें x की वैल्यू पश्चिम से पूर्व की ओर और y की वैल्यू उत्तर से दक्षिण तक बढ़ती है. टाइल को उस ऑरिजिन के x,y कोऑर्डिनेट का इस्तेमाल करके इंडेक्स किया जाता है. उदाहरण के लिए, ज़ूम लेवल 2 पर, जब पृथ्वी को 16 टाइल में बांटा जाता है, तब हर टाइल को एक यूनीक x,y पेयर से रेफ़र किया जा सकता है:

चार पंक्तियों और टाइल के चार स्तंभों में बंटा दुनिया का मैप.

ध्यान दें कि पिक्सल कोऑर्डिनेट को टाइल के साइज़ (256) से भाग देने और नतीजे के पूर्णांक वाले हिस्सों को लेने पर, आपको मौजूदा ज़ूम लेवल पर, टाइल कोऑर्डिनेट के हिसाब से प्रॉडक्ट के तौर पर नतीजे मिलते हैं.

उदाहरण

नीचे दिए गए उदाहरण में शिकागो, इलिनॉय के लिए निर्देशांक दिखाए गए हैं: अक्षांश/देशांतर की वैल्यू, दुनिया के निर्देशांक, पिक्सल निर्देशांक, और टाइल कोऑर्डिनेट. अलग-अलग ज़ूम लेवल पर निर्देशांक वैल्यू देखने के लिए, ज़ूम कंट्रोल का इस्तेमाल करें.

निर्देशांकों की गिनती करने का तरीका जानने के लिए, कोड देखें.