2D टाइल की खास जानकारी

रोडमैप का उदाहरणमैप टाइल की मदद से, दुनिया को इंडेक्स करके दिखाया जाता है ग्रिड. इसकी मदद से, मैप के डेटा को बेहतर और डाइनैमिक तरीके से ऐक्सेस और इस्तेमाल किया जा सकता है मैप पर अलग-अलग स्केल पर. Map Tiles API से आपको इनका ऐक्सेस मिलता है इसमें Google की ओर से चुने गए कई थीम वाले जियोडेटासेट भी शामिल होते हैं:

  • वेक्टर टोपोग्राफ़िक डेटा पर आधारित रोडमैप इमेज टाइल, जिसमें Google के कार्टोग्राफ़िक स्टाइलिंग के बारे में बताया गया है.

  • सैटलाइट और एयरबोन दोनों कैमरों से कैप्चर की गई ऑर्थोफ़ोटोग्राफ़ी पृथ्वी की ऊपर से नीचे (नीचे की ओर) तस्वीरें.

  • हिल्सहाड कॉन्टूर मैप.

2D मैप टाइल, सभी को अलग-अलग जगहों पर दिखाया जाता है और ये एक-दूसरे से अलाइन होती हैं. उन्हें चुना गया है व्यूपोर्ट और ज़ूम लेवल की भौगोलिक सीमा पर निर्भर करता है. ज़ूम स्तर शून्य से लेकर (दुनिया को पूरी तरह से देखने के लिए) से लेकर 22 (सड़कों और ब्लॉक).

मैप थीम

आपको इन मैप थीम के लिए मैप टाइल मिल सकती हैं.

मैप की थीम ब्यौरा
रोडमैप सड़कें, इमारतें, लोकप्रिय जगहें, और राजनैतिक सीमाएं
सैटलाइट अंतरिक्ष से ली गई तस्वीरें
इलाका पेड़-पौधों जैसी प्राकृतिक विशेषताओं को दिखाने वाला कंटूर मैप

Map Tiles API से मैप टाइल का अनुरोध करने के लिए, आपको पहले सेशन टोकन. सेशन टोकन आपके मैप और व्यूपोर्ट की मौजूदा स्थिति को ट्रैक करता है. सेशन सेट अप करने पर टोकन के तौर पर, आपको mapType वैल्यू को सेट करना होगा, ताकि वह आपकी पसंद के मैप थीम से मैच कर सके. इसके बाद, आपको अपने हर अनुरोध में सेशन टोकन शामिल करना होगा मैप टाइल एपीआई.

व्यूपोर्ट की जानकारी के लिए अनुरोध

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

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

व्यूपोर्ट अनुरोध, नीचे दिए गए फ़ॉर्म में एक एचटीटीपीएस जीईटी अनुरोध है.

curl "https://tile.googleapis.com/tile/v1/viewport?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&zoom=zoom&north=north&south=south&east=east&west=west"

अनुरोध में ये फ़ील्ड शामिल होते हैं:

zoom
व्यूपोर्ट का ज़ूम लेवल.
north, south, east, west
व्यूपोर्ट में सबसे दूर के उत्तर, दक्षिण, पूर्व, और पश्चिम के पॉइंट, जिन्हें इसमें दिखाया गया है डिग्री. उत्तर और दक्षिण, -90,90 की सीमा में होना चाहिए. पूर्व और पश्चिम रेंज (-180, 180). एंटी-मेरिडियन को पार करने वाली सीमाओं को अभिव्यक्त करने के लिए, पश्चिम की ओर पॉज़िटिव (उदाहरण के लिए, 170) और पूर्व, नेगेटिव हो सकता है (उदाहरण के लिए, -170). सभी पैरामीटर आवश्यक हैं.

व्यूपोर्ट की जानकारी से जुड़े जवाब

व्यूपोर्ट जवाब आपको बताता है कि किन क्षेत्रों में इमेजरी है और किस पर ज़ूम किया जा सकता है लेवल. व्यूपोर्ट की जानकारी से जुड़ा रिस्पॉन्स यह फ़ॉर्म होता है.

{
  "copyright": "Map data ©2023",
  "maxZoomRects": [
    {
      "maxZoom": 19,
      "north": 90,
      "south": -90,
      "east": 180,
      "west": -180
    },
    {
      "maxZoom": 9,
      "north": 90,
      "south": -90,
      "east": 180,
      "west": -180
    },
    {
      "maxZoom": 14,
      "north": 84.375,
      "south": -84.375,
      "east": 180,
      "west": -180
    }, ...
  ]
}

जवाब के मुख्य हिस्से में ये फ़ील्ड शामिल होते हैं.

copyright
इसमें एक एट्रिब्यूशन स्ट्रिंग शामिल होती है, जिसे आपको मैप पर तब दिखाना होता है, जब आप डिसप्ले रोडमैप और सैटलाइट टाइल दिखाने की सुविधा मिलती है. ज़्यादा जानकारी के लिए, देखें Maps Tiles API की नीतियां.
maxZoomRect
इसमें बाउंडिंग रेक्टैंगल का कलेक्शन होता है, जो मौजूदा रेक्टैंगल से ओवरलैप करते हैं व्यूपोर्ट. इसमें हर रेक्टैंगल में उपलब्ध सबसे ज़्यादा ज़ूम लेवल भी शामिल होता है.

टाइल कोऑर्डिनेट फ़ंक्शन

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

var TILE_SIZE = 256;

function fromLatLngToPoint(latLng) {
  var mercator = -Math.log(Math.tan((0.25 + latLng.lat() / 360) * Math.PI));
  return {
    x: TILE_SIZE * (latLng.lng() / 360 + 0.5),
    y: TILE_SIZE / 2 * (1 +  mercator / Math.PI)
  };
}

function fromLatLngToTileCoord(latLng, zoom) {
  var point = fromLatLngToPoint(latLng);
  var scale = Math.pow(2, zoom);

  return {
    x: Math.floor(point.x * scale / TILE_SIZE),
    y: Math.floor(point.y * scale / TILE_SIZE),
    z: zoom
  };
}