Panoramica
L'API di Google Maps fornisce riquadri delle mappe in vari livelli di zoom per immagini di tipo mappa. La maggior parte delle roadmap le immagini sono disponibili con livelli di zoom da 0 a 18, ad esempio. Le immagini satellitari variano di più in quanto questa le immagini non vengono generate, ma fotografate direttamente.
Poiché le immagini satellitari non sono sempre disponibili
livelli di zoom elevati per località remote: scarsamente popolato
aree o aree oceaniche aperte, potresti voler
conoscere il livello di zoom più elevato per le immagini in una determinata località
in anticipo. L'oggetto MaxZoomService
fornisce un'istanza
un'interfaccia semplice per scoprire il livello massimo di zoom
una determinata località per cui Google Maps dispone di immagini satellitari.
Richieste MaxZoom
L'accesso a MaxZoomService
è asincrono, poiché
L'API Google Maps deve effettuare una chiamata a un server esterno. Per
Per questo motivo, devi passare un metodo di callback per eseguire
al completamento della richiesta. Questo metodo di callback deve elaborare
per ottenere il risultato.
Per avviare una richiesta all'MaxZoomService
:
chiama getMaxZoomAtLatLng()
, passando il
LatLng
della località e una funzione di callback
da eseguire al completamento della richiesta.
Risposte MaxZoom
Quando getMaxZoomAtLatLng()
esegue il callback
, trasmetterà due parametri:
status
contieneMaxZoomStatus
della richiesta.zoom
contiene il livello di zoom. Se per qualche motivo se il servizio non funziona, questo valore non sarà presente.
Il codice status
può restituire uno dei seguenti valori:
OK
indica che il servizio ha trovato lo zoom massimo per le immagini satellitari.ERROR
indica che la richiesta MaxZoom non è stato elaborato.
L'esempio seguente mostra una mappa della città metropolitana 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 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;