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

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

iOS के लिए Maps SDK टूल इन निर्देशांक सिस्टम का इस्तेमाल करता है:

  • अक्षांश और देशांतर की वैल्यू, जो दुनिया के किसी बिंदु से खास तौर पर जुड़ी होती हैं. Google, World Geodetic System 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 के लिए, पिक्सल निर्देशांक दुनिया के निर्देशांकों के बराबर होते हैं.

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

टाइल कोऑर्डिनेट

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

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

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

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

उदाहरण

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

यह देखने के लिए कि निर्देशांकों की गणना कैसे की गई है, कोड देखें.