نمای کلی
Google Maps API قطعههای نقشه را در سطوح بزرگنمایی مختلف برای تصاویر نوع نقشه ارائه میدهد. برای مثال، بیشتر تصاویر نقشه راه از سطح بزرگنمایی ۰ تا ۱۸ دردسترس است. تصاویر ماهوارهای تنوع بیشتری دارند زیرا این تصاویر تولید نمیشوند، بلکه مستقیماً عکسبرداری میشوند.
چون تصاویر ماهوارهای همیشه در سطوح بزرگنمایی بالا برای مکانهای دورافتاده (مناطق کمجمعیت یا مناطق اقیانوسی باز) دردسترس نیست، شاید بخواهید ازقبل بالاترین سطح بزرگنمایی را برای تصاویر در مکان مشخصی بدانید. شیء MaxZoomService میانای سادهای برای یافتن حداکثر سطح بزرگنمایی در مکان مشخصی که Google Maps برای آن تصاویر ماهوارهای دارد ارائه میدهد.
درخواستهای MaxZoom
دسترسی به MaxZoomService ناهمگام است، زیرا Google Maps API باید با سرور خارجی تماس برقرار کند. به همین دلیل، باید روش فراخوانی را برای اجرا پساز تکمیل درخواست ارسال کنید. این روش فراخوانی باید نتیجه را پردازش کند.
برای شروع درخواست به MaxZoomService،
getMaxZoomAtLatLng() را فراخوانی کنید و
LatLng مکان و تابع بازخوانی را
برای اجرا پساز تکمیل درخواست ارسال کنید.
پاسخهای MaxZoom
وقتی getMaxZoomAtLatLng() تابع فراخوانی متقابل را اجرا میکند، دو پارامتر را برمیگرداند:
statusحاویMaxZoomStatusدرخواست است.zoomحاوی سطح بزرگنمایی است. اگر به هر دلیلی سرویس ناموفق باشد، این مقدار وجود نخواهد داشت.
کد status ممکن است یکی از مقادیر زیر را برگرداند:
OKنشان میدهد که سرویس حداکثر سطح بزرگنمایی را برای تصاویر ماهوارهای پیدا کرده است.ERRORنشان میدهد که درخواست MaxZoom پردازش نشد.
مثال زیر نقشهای از کلانشهر توکیو را نشان میدهد. کلیک کردن در هر جایی از نقشه، حداکثر سطح بزرگنمایی را در آن مکان نشان میدهد. (سطوح بزرگنمایی در اطراف توکیو معمولاً بین سطوح بزرگنمایی ۱۸ و ۲۱ متغیر است.)
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;