Servizio di immagini Zoom massimo

  1. Immagini con zoom massimo
  2. Richieste MaxZoom
  3. Risposte MaxZoom

Panoramica

L'API di Google Maps fornisce riquadri delle mappe a diversi livelli di zoom per immagini di tipi di mappa. Ad esempio, la maggior parte delle immagini delle roadmap è disponibile con livelli di zoom da 0 a 18. Le immagini satellitari sono più ampie perché non vengono generate, ma fotografate direttamente.

Poiché le immagini satellitari non sono sempre disponibili a livelli di zoom elevati per le località remote, come le aree scarsamente popolate o le aree oceaniche aperte, ti consigliamo di conoscere in anticipo il livello di zoom più elevato per le immagini di un determinato luogo. L'oggetto MaxZoomService fornisce un'interfaccia semplice per scoprire il livello massimo di zoom 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 completamento della richiesta. Questo metodo di callback dovrebbe elaborare il risultato.

Per avviare una richiesta a MaxZoomService, chiama getMaxZoomAtLatLng(), passando il LatLng della località e una funzione di callback da eseguire al termine della richiesta.

Risposte MaxZoom

Quando getMaxZoomAtLatLng() esegue la funzione callback, trasmette due parametri:

  • status contiene il valore MaxZoomStatus della richiesta.
  • zoom contiene il livello di zoom. Se per qualche motivo il servizio non funziona, 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 dell'area metropolitana di Tokyo. Se fai clic su un punto qualsiasi della mappa, viene indicato il livello massimo di zoom in quella posizione. I livelli di zoom nelle zone di Tokyo variano generalmente 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;
Visualizza esempio

Prova Samples