Dienst für maximale Bildvergrößerung

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
  1. Maximale Zoomstufe für Bilder
  2. MaxZoom-Anfragen
  3. MaxZoom-Antworten

Übersicht

Die Google Maps API stellt Kartenkacheln für verschiedene Zoomstufen von Kartentypbildern bereit. Die meisten Straßenkartenbilder sind beispielsweise für die Zoomstufen 0 bis 18 verfügbar. Satellitenbilder variieren stärker, da diese Bilder nicht generiert, sondern direkt fotografiert werden.

Da Satellitenbilder für entlegene Standorte – dünn bevölkerte Gebiete oder Gebiete am offenen Meer – nicht immer mit großen Zoomstufen verfügbar sind, kann es hilfreich sein, im Voraus die höchste Zoomstufe für die Bilder an einem bestimmten Standort zu ermitteln. Das MaxZoomService-Objekt bietet eine einfache Oberfläche zum Ermitteln der maximalen Zoomstufe für einen bestimmten Standort, für den in Google Maps Satellitenbilder verfügbar sind.

MaxZoom-Anforderungen

Der Zugriff auf MaxZoomService ist asynchron, da die Google Maps API einen externen Server aufrufen muss. Aus diesem Grund müssen Sie eine Callback-Methode übergeben, die nach Abschluss der Anfrage ausgeführt wird. Diese Callback-Methode sollte das Ergebnis verarbeiten.

Zum Initiieren einer Anfrage an MaxZoomService rufen Sie getMaxZoomAtLatLng() auf und übergeben die LatLng des Standorts sowie eine Callback-Funktion, die nach Abschluss der Anfrage ausgeführt wird.

MaxZoom-Antworten

Wenn getMaxZoomAtLatLng() die Callback-Funktion ausführt, gibt diese zwei Parameter zurück:

  • status enthält die MaxZoomStatus der Anfrage.
  • zoom enthält die Zoomstufe. Wenn der Dienst aus irgendeinem Grund fehlschlägt, ist dieser Wert nicht vorhanden.

Der Code status kann einen der folgenden Werte zurückgeben:

  • OK gibt an, dass der Dienst die maximale Zoomstufe für Satellitenbilder ermittelt hat.
  • ERROR gibt an, dass die MaxZoom-Anfrage nicht verarbeitet werden konnte.

Im nachfolgenden Beispiel ist eine Karte der Metropole Tokio dargestellt: Durch Klicken auf eine beliebige Stelle auf der Karte wird die maximale Zoomstufe für diesen Standort angegeben. Die Zoomstufen um Tokio variieren im Allgemeinen zwischen 18 und 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;
Beispiel ansehen

Beispiel ausprobieren