Panoramica
L'API Google Maps fornisce riquadri di mappe a vari livelli di zoom per le immagini dei tipi di mappe. Ad esempio, la maggior parte delle immagini delle mappe è disponibile dai livelli di zoom 0 a 18. Le immagini satellitari variano più ampiamente in quanto non vengono generate, ma fotografate direttamente.
Poiché le immagini satellitari non sono sempre disponibili con livelli di zoom elevati per località remote, come aree scarsamente popolate o oceani aperti, ti consigliamo di conoscere in anticipo il livello di zoom più elevato per le immagini in una determinata località. L'oggetto MaxZoomService
fornisce un'interfaccia semplice per scoprire il livello di zoom massimo in una determinata località per la quale Google Maps dispone di immagini satellitari.
Richieste MaxZoom
L'accesso a MaxZoomService
è asincrono, poiché l'API di Google Maps deve effettuare una chiamata a un server esterno. Per questo motivo, devi passare un metodo di callback da eseguire al termine della richiesta. Questo metodo di callback deve elaborare il risultato.
Per avviare una richiesta al MaxZoomService
, chiama getMaxZoomAtLatLng()
passando il LatLng
della posizione e una funzione di callback da eseguire al termine della richiesta.
Risposte MaxZoom
Quando getMaxZoomAtLatLng()
esegue la funzione di callback, restituisce due parametri:
status
contiene ilMaxZoomStatus
della richiesta.zoom
contiene il livello di zoom. Se per qualche motivo il servizio non va a buon fine, questo valore non sarà presente.
Il codice status
può restituire uno dei seguenti valori:
OK
indica che il servizio ha trovato il livello di zoom massimo per le immagini satellitari.ERROR
indica che non è stato possibile elaborare la richiesta di zoom massimo.
L'esempio seguente mostra una mappa della metropoli di Tokyo. Se fai clic in un punto qualsiasi della mappa, viene indicato il livello di zoom massimo in quella posizione. I livelli di zoom intorno a Tokyo in genere variano tra 18 e 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;