खास जानकारी
Google Maps API, मैप टाइप की तस्वीरों के लिए, अलग-अलग ज़ूम लेवल पर मैप टाइल की सुविधा देता है. उदाहरण के लिए, ज़्यादातर रोडमैप की इमेज, 0 से 18 तक के ज़ूम लेवल तक उपलब्ध होती हैं. सैटलाइट से ली गई तस्वीरें अलग-अलग होती हैं, क्योंकि यह तस्वीरें जनरेट नहीं की जातीं, बल्कि इनकी सीधे तौर पर तस्वीरें ली जाती हैं.
सैटलाइट से ली गई तस्वीरें, दूर-दराज़ की जगहों — बहुत कम आबादी वाले या खुले समुद्रों के इलाके के लिए, हमेशा ज़ूम के ज़्यादा लेवल पर उपलब्ध नहीं होती हैं. इसलिए, हो सकता है कि आपको किसी जगह की इमेज के ज़ूम के सबसे ज़्यादा लेवल के बारे में पहले से जानना हो. MaxZoomService
ऑब्जेक्ट, आसान इंटरफ़ेस की मदद से,
उस जगह के लिए ज़ूम के ज़्यादा से ज़्यादा लेवल का पता लगाता है जिसके लिए Google Maps में सैटलाइट से ली गई तस्वीरें हैं.
MaxZoom के अनुरोध
MaxZoomService
को ऐक्सेस करना एसिंक्रोनस होता है, क्योंकि Google Maps API को बाहरी सर्वर को कॉल करने की ज़रूरत होती है. इसलिए,
अनुरोध पूरा होने पर उसे लागू करने के लिए, आपको कॉलबैक वाला तरीका
पास करना होगा. इस कॉलबैक तरीके से नतीजा प्रोसेस होना चाहिए.
MaxZoomService
को अनुरोध भेजने के लिए, getMaxZoomAtLatLng()
को कॉल करें. साथ ही, अनुरोध पूरा होने पर एक्ज़ीक्यूट करने के लिए, जगह का LatLng
और कॉलबैक फ़ंक्शन पास करें.
MaxZoom के जवाब
जब 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;