ภาพรวม
Google แผนที่ API มีชิ้นส่วนแผนที่ในหลายๆ ระดับการซูมสำหรับภาพประเภทแผนที่ โรดแมปที่ใช้มากที่สุด แสดงภาพได้ตั้งแต่ระดับการซูม 0 ถึง 18 ภาพถ่ายจากดาวเทียมจะแตกต่างกันมากขึ้น ไม่สร้างขึ้น แต่ถ่ายโดยตรง
เนื่องจากบางครั้งอาจไม่มีภาพดาวเทียมที่
ระดับการซูมสูงสำหรับตำแหน่งห่างไกล - มีข้อมูลอยู่เล็กน้อย
พื้นที่มหาสมุทรเปิด — คุณอาจต้องการ
ทราบระดับการซูมสูงสุดของภาพในตำแหน่งที่ระบุ
ไว้ล่วงหน้า ออบเจ็กต์ MaxZoomService
มีค่า
อินเทอร์เฟซที่เรียบง่ายสำหรับการค้นพบระดับการซูมสูงสุดที่
ตำแหน่งที่ระบุซึ่ง Google Maps มีภาพถ่ายจากดาวเทียม
คำขอ MaxZoom
การเข้าถึง MaxZoomService
เป็นแบบไม่พร้อมกันเนื่องจาก
Google Maps API จำเป็นต้องเรียกไปยังเซิร์ฟเวอร์ภายนอก สำหรับ
คุณจึงต้องส่งเมธอด callback เพื่อดำเนินการ
เมื่อดำเนินการตามคำขอเสร็จแล้ว วิธีการโทรกลับนี้ควรประมวลผล
ผลลัพธ์
หากต้องการเริ่มส่งคำขอไปยัง MaxZoomService
โทรหา getMaxZoomAtLatLng()
ผ่าน
LatLng
ของตำแหน่งและฟังก์ชัน Callback
ที่จะดำเนินการเมื่อคำขอเสร็จสมบูรณ์
การตอบกลับ MaxZoom
เมื่อ getMaxZoomAtLatLng()
เรียกใช้ callback
ฟังก์ชันนี้จะส่งคืนพารามิเตอร์ 2 ตัว ได้แก่
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;