Servizio di immagini Zoom massimo

  1. Massimo zoom delle immagini
  2. Richieste MaxZoom
  3. Risposte MaxZoom

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 contiene MaxZoomStatus 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;
Visualizza esempio

Prova Sample