نمای کلی
Google Maps API کاشی های نقشه را در سطوح مختلف زوم برای تصاویر نوع نقشه فراهم می کند. بیشتر تصاویر نقشه راه، برای مثال، از سطوح زوم 0 تا 18 در دسترس هستند. تصاویر ماهواره ای بسیار متفاوت است زیرا این تصاویر تولید نمی شوند، بلکه مستقیماً عکس گرفته می شوند.
از آنجا که تصاویر ماهوارهای همیشه در سطوح زوم بالا برای مکانهای دوردست در دسترس نیستند - مناطق کم جمعیت یا مناطق باز اقیانوس - ممکن است بخواهید از قبل بالاترین سطح زوم را برای تصاویر در یک مکان مشخص بدانید. شی MaxZoomService
یک رابط ساده برای کشف حداکثر سطح زوم در یک مکان معینی که Google Maps برای آن تصاویر ماهواره ای دارد، فراهم می کند.
درخواست های MaxZoom
دسترسی به MaxZoomService
ناهمزمان است، زیرا Google Maps API باید با یک سرور خارجی تماس بگیرد. به همین دلیل، باید پس از تکمیل درخواست، یک متد برگشتی را ارسال کنید تا اجرا شود. این روش برگشتی باید نتیجه را پردازش کند.
برای شروع درخواست به MaxZoomService
، getMaxZoomAtLatLng()
را فراخوانی کنید، LatLng
مکان و تابع callback را ارسال کنید تا پس از تکمیل درخواست اجرا شود.
پاسخ های 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;
جاوا اسکریپت
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;