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