نظرة عامة
توفر واجهة برمجة تطبيقات خرائط Google مربعات الخرائط في مختلف مستويات التكبير أو التصغير لصور نوع الخريطة. معظم خارطة الطريق الصور متاحة من مستويات التكبير/التصغير 0 إلى 18، مثال. تختلف صور القمر الصناعي على نطاق أوسع حيث الصور، ولكن يتم تصويرها مباشرةً.
نظرًا لأن صور القمر الصناعي لا تتوفر دائمًا على
مستويات تكبير/تصغير عالية في المواقع النائية — تكون فيها كثافة سكانية منخفضة
أو مناطق محيطة مفتوحة - قد ترغب في
معرفة أعلى مستوى تكبير للصور في موقع معين
مسبقًا. يوفّر الكائن MaxZoomService
السمة
بسيطة لاكتشاف أقصى مستوى للتكبير/التصغير
الموقع الذي تتوفر له صور القمر الصناعي في خرائط Google.
طلبات MaxZoom
يُعد الوصول إلى MaxZoomService
غير متزامن، نظرًا لأن
تحتاج واجهة برمجة التطبيقات لخرائط Google إلى إجراء اتصال بخادم خارجي. بالنسبة
لهذا السبب، تحتاج إلى تمرير طريقة استدعاء لتنفيذ
فور اكتمال الطلب. يجب معالجة طريقة معاودة الاتصال هذه
النتيجة.
لإرسال طلب إلى MaxZoomService
،
الاتصال بـ getMaxZoomAtLatLng()
، وتمرير
LatLng
للموقع الجغرافي ودالة استدعاء
التنفيذ عند اكتمال الطلب.
استجابات MaxZoom
عندما ينفذ getMaxZoomAtLatLng()
معاودة الاتصال
ستعمل على تمرير معاملين:
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;