Genel Bakış
Google Maps API, harita türü görüntüleri için çeşitli yakınlaştırma seviyelerinde harita karoları sağlar. Örneğin, çoğu yol haritası görüntüsü 0 ile 18 arasındaki yakınlaştırma seviyelerinde kullanılabilir. Uydu görüntüleri oluşturulmadığı, doğrudan fotoğraflandığı için daha fazla çeşitlilik gösterir.
Uydu görüntüleri, uzak konumlarda (nüfusun seyrek olduğu bölgeler veya açık okyanus alanları) her zaman yüksek yakınlaştırma seviyelerinde kullanılamadığından, belirli bir konumdaki görüntüler için en yüksek yakınlaştırma seviyesini önceden bilmek isteyebilirsiniz. MaxZoomService nesnesi, Google Haritalar'ın uydu görüntülerine sahip olduğu belirli bir konumda maksimum yakınlaştırma seviyesini keşfetmek için basit bir arayüz sağlar.
MaxZoom İstekleri
Google Haritalar API'sinin harici bir sunucuya çağrı yapması gerektiğinden MaxZoomService erişimi eşzamansızdır. Bu nedenle, isteğin tamamlanmasının ardından yürütülecek bir geri çağırma yöntemi iletmeniz gerekir. Bu geri çağırma yöntemi, sonucu işlemelidir.
MaxZoomService için bir istek başlatmak üzere getMaxZoomAtLatLng() yöntemini çağırın. Bu yönteme konumun LatLng değerini ve istek tamamlandığında yürütülecek 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ğinMaxZoomStatusdeğerini içerir.zoom, yakınlaştırma seviyesini içerir. Hizmet herhangi bir nedenle 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 seviyesini 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;