Panoramica
L'API Google Maps fornisce riquadri di mappa a vari livelli di zoom per le immagini di tipo mappa. La maggior parte delle immagini della roadmap è disponibile, ad esempio, dai livelli di zoom compresi tra 0 e 18. Le immagini satellitari variano in modo più ampio in quanto non vengono generate, ma vengono fotografate direttamente.
Poiché le immagini satellitari non sono sempre disponibili con livelli di zoom elevati per località remote, aree scarsamente popolate o aree oceaniche aperte, ti consigliamo di conoscere il massimo livello di zoom per le immagini di una determinata località. L'oggetto MaxZoomService
fornisce un'interfaccia semplice per scoprire il livello massimo di zoom in una determinata posizione 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 superare un metodo di callback da eseguire al completamento della richiesta. Questo metodo di callback deve elaborare il risultato.
Per avviare una richiesta a MaxZoomService
,
chiama getMaxZoomAtLatLng()
, trasmettendo il
LatLng
della località e una funzione di callback
da eseguire al termine della richiesta.
Risposte MaxZoom
Quando getMaxZoomAtLatLng()
esegue la funzione di callback, restituisce due parametri:
status
contieneMaxZoomStatus
della richiesta.zoom
contiene il livello di zoom. Se per qualche motivo il servizio non riesce, questo valore non sarà presente.
Il codice status
potrebbe restituire uno dei seguenti valori:
OK
indica che il servizio ha trovato il livello massimo di zoom per le immagini satellitari.ERROR
indica che non è stato possibile elaborare la richiesta MaxZoom.
L'esempio seguente mostra una mappa della città metropolitana di Tokyo. Se fai clic su un punto qualsiasi della mappa, viene indicato il livello massimo di zoom in quel punto. I livelli di zoom intorno a Tokyo generalmente variano tra i livelli di zoom 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;