Genel Bakış
Google Haritalar API, harita türü görüntüler için çeşitli yakınlaştırma düzeylerinde harita karoları sağlar. Örneğin, yol haritası görüntülerinin çoğu 0 ila 18 arası yakınlaştırma seviyelerinde kullanılabilir. Bu görüntüler oluşturulmadığı için doğrudan fotoğraflandığından uydu görüntüleri daha geniş bir çeşitlilik gösterir.
Uydu görüntüleri, uzak konumlar (az nüfuslu alanlar veya açık okyanus alanları) için her zaman yüksek yakınlaştırma düzeylerinde kullanılamayabileceğinden, belirli bir konumdaki görüntüler için en yüksek yakınlaştırma düzeyini önceden öğrenmek isteyebilirsiniz. MaxZoomService
nesnesi, Google Haritalar'ın uydu görüntüsü sağladığı belirli bir konumdaki maksimum yakınlaştırma düzeyini keşfetmek için basit bir arayüz sunar.
MaxZoom İstekleri
Google Maps API'nin harici bir sunucuya çağrı yapması gerektiğinden MaxZoomService
öğesine erişme işlemi eşzamansızdır. Bu nedenle, istek tamamlandıktan sonra çalıştırılacak bir geri çağırma yöntemi iletmeniz gerekir. Bu geri çağırma yöntemi sonucu işlemelidir.
MaxZoomService
için istek başlatmak üzere getMaxZoomAtLatLng()
'i çağırın. Bu sırada konumun LatLng
değerini ve istek tamamlandığında çalıştırılacak bir geri çağırma işlevini iletin.
MaxZoom Yanıtları
getMaxZoomAtLatLng()
, geri çağırma işlevini yürüttüğünde iki parametre döndürür:
status
, isteğinMaxZoomStatus
zoom
, yakınlaştırma düzeyini içerir. Herhangi bir nedenle hizmet başarısız olursa bu değer mevcut olmaz.
status
kodu aşağıdaki değerlerden birini döndürebilir:
OK
, hizmetin uydu görüntüleri için maksimum yakınlaştırma düzeyini bulduğunu gösterir.ERROR
, MaxZoom isteğinin işlenemediğini gösterir.
Aşağıdaki örnekte Tokyo metropolünün haritası gösterilmektedir. Haritada herhangi bir yeri tıkladığınızda o konumdaki maksimum yakınlaştırma seviyesi gösterilir. (Tokyo çevresindeki yakınlaştırma seviyeleri genellikle 18 ile 21 arasında değişir.)
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;