ज़्यादा से ज़्यादा ज़ूम करने की सुविधा वाली इमेजरी सेवा

  1. मैक्सिमम ज़ूम इमेजरी
  2. MaxZoom के अनुरोध
  3. MaxZoom के जवाब

खास जानकारी

Google Maps API, मैप टाइप की इमेजरी के लिए, ज़ूम करने के अलग-अलग लेवल पर मैप टाइल उपलब्ध कराता है. उदाहरण के लिए, ज़्यादातर रोडमैप इमेज, ज़ूम करने के लेवल 0 से 18 तक उपलब्ध होती हैं. सैटलाइट से ली गई तस्वीरों में काफ़ी अंतर होता है, क्योंकि ये तस्वीरें जनरेट नहीं की जाती हैं, बल्कि सीधे तौर पर खींची जाती हैं.

दूर-दराज़ की जगहों के लिए, सैटलाइट से ली गई तस्वीरें हमेशा ज़ूम करने के ज़्यादा लेवल पर उपलब्ध नहीं होती हैं. जैसे, कम आबादी वाले इलाके या खुले महासागर वाले इलाके. इसलिए, हो सकता है कि आप किसी जगह की तस्वीरों के लिए, ज़ूम करने के सबसे ज़्यादा लेवल के बारे में पहले से जानना चाहें. MaxZoomService ऑब्जेक्ट, किसी जगह के लिए ज़ूम करने का ज़्यादा से ज़्यादा लेवल पता करने के लिए एक आसान इंटरफ़ेस उपलब्ध कराता है. इसके लिए, Google Maps के पास सैटलाइट से ली गई तस्वीरें होती हैं.

MaxZoom के अनुरोध

MaxZoomService को ऐक्सेस करना एसिंक्रोनस है, क्योंकि Google Maps API को किसी बाहरी सर्वर को कॉल करना पड़ता है. इस वजह से, अनुरोध पूरा होने पर, आपको कॉलबैक का तरीका पास करना होगा. कॉलबैक के इस तरीके से, नतीजे को प्रोसेस किया जाना चाहिए.

MaxZoomService को अनुरोध भेजने के लिए, getMaxZoomAtLatLng() को कॉल करें. साथ ही, जगह की जानकारी का LatLng और अनुरोध पूरा होने पर एक्ज़ीक्यूट होने वाला कॉलबैक फ़ंक्शन पास करें.

MaxZoom Responses

जब getMaxZoomAtLatLng(), callback फ़ंक्शन को एक्ज़ीक्यूट करता है, तो यह दो पैरामीटर वापस पास करेगा:

  • status में अनुरोध का MaxZoomStatus शामिल होता है.
  • zoom में ज़ूम करने का लेवल शामिल है. अगर किसी वजह से सेवा काम नहीं करती है, तो यह वैल्यू मौजूद नहीं होगी.

status कोड, इनमें से कोई एक वैल्यू दिखा सकता है:

  • OK से पता चलता है कि सेवा को सैटलाइट से ली गई तस्वीरों के लिए, ज़ूम करने का ज़्यादा से ज़्यादा लेवल मिल गया है.
  • ERROR से पता चलता है कि MaxZoom के अनुरोध को प्रोसेस नहीं किया जा सका.

यहां दिए गए उदाहरण में, टोक्यो मेट्रोपॉलिटन का मैप दिखाया गया है. मैप पर कहीं भी क्लिक करने से, उस जगह पर ज़ूम करने का ज़्यादा से ज़्यादा लेवल दिखता है. (टोक्यो के आस-पास ज़ूम करने का लेवल, आम तौर पर 18 से 21 के बीच होता है.)

TypeScript

let map: google.maps.Map;
let maxZoomService: google.maps.MaxZoomService;
let infoWindow: google.maps.InfoWindow;

function initMap(): void {
  map = new google.maps.Map(document.getElementById("map") as HTMLElement, {
    zoom: 11,
    center: { lat: 35.6894, lng: 139.692 },
    mapTypeId: "hybrid",
  });

  infoWindow = new google.maps.InfoWindow();

  maxZoomService = new google.maps.MaxZoomService();

  map.addListener("click", showMaxZoom);
}

function showMaxZoom(e: google.maps.MapMouseEvent) {
  maxZoomService.getMaxZoomAtLatLng(
    e.latLng as google.maps.LatLng,
    (result: google.maps.MaxZoomResult) => {
      if (result.status !== "OK") {
        infoWindow.setContent("Error in MaxZoomService");
      } else {
        infoWindow.setContent(
          "The maximum zoom at this location is: " + result.zoom
        );
      }

      infoWindow.setPosition(e.latLng);
      infoWindow.open(map);
    }
  );
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

let map;
let maxZoomService;
let infoWindow;

function initMap() {
  map = new google.maps.Map(document.getElementById("map"), {
    zoom: 11,
    center: { lat: 35.6894, lng: 139.692 },
    mapTypeId: "hybrid",
  });
  infoWindow = new google.maps.InfoWindow();
  maxZoomService = new google.maps.MaxZoomService();
  map.addListener("click", showMaxZoom);
}

function showMaxZoom(e) {
  maxZoomService.getMaxZoomAtLatLng(e.latLng, (result) => {
    if (result.status !== "OK") {
      infoWindow.setContent("Error in MaxZoomService");
    } else {
      infoWindow.setContent(
        "The maximum zoom at this location is: " + result.zoom,
      );
    }

    infoWindow.setPosition(e.latLng);
    infoWindow.open(map);
  });
}

window.initMap = initMap;
उदाहरण देखें