Maksymalna liczba zdjęć w powiększeniu

  1. Zdjęcia z maksymalnym powiększeniem
  2. Żądania MaxZoom
  3. Odpowiedzi MaxZoom

Omówienie

Interfejs API Map Google udostępnia fragmenty mapy w różnych miejscach poziomów powiększenia. Większość planów dostępne od poziomu powiększenia od 0 do 18, przykład. Zdjęcia satelitarne znacznie się różnią, zdjęcia nie są generowane, lecz sfotografowane bezpośrednio.

Zdjęcia satelitarne nie zawsze są dostępne w wysoki poziom powiększenia dla odległych lokalizacji — słabo zaludnione czy otwartych obszarów oceanicznych, określić najwyższy poziom powiększenia zdjęć w danej lokalizacji; wcześniej. Obiekt MaxZoomService udostępnia prosty interfejs do wykrywania maksymalnego poziomu powiększenia danej lokalizacji, której Mapy Google zawierają zdjęcia satelitarne.

Żądania maksymalizacji powiększenia

Dostęp do MaxZoomService jest asynchroniczny, ponieważ Interfejs API Map Google musi wywołać serwer zewnętrzny. Dla: W takim przypadku musisz przekazać metodę wywołania zwrotnego, która pozwoli wykonać po przesłaniu prośby. Ta metoda wywołania zwrotnego powinna przetworzyć w konsekwencji wyniku.

Aby wysłać prośbę do MaxZoomService, wywołaj getMaxZoomAtLatLng(), przekazując błąd LatLng lokalizacji i funkcji wywołania zwrotnego do wykonania po zakończeniu żądania.

Odpowiedzi MaxZoom

Kiedy getMaxZoomAtLatLng() wykonuje wywołanie zwrotne , zwróci z powrotem dwa parametry:

  • status zawiera MaxZoomStatus danej prośby.
  • zoom zawiera poziom powiększenia. Jeśli z jakiegoś powodu nie uda się zrealizować usługi, wartość ta nie zostanie podana.

Kod status może zwrócić jedną z tych wartości:

  • OK oznacza, że usługa znalazła maksymalne powiększenie. dla zdjęć satelitarnych.
  • ERROR oznacza, że żądanie MaxZoom nie udało się przetworzyć.

Poniższy przykład przedstawia mapę metropolii Tokio. Kliknięcie dowolnego miejsca na mapie wskazuje maksymalny poziom powiększenia. w tym miejscu. (Poziomy powiększenia w Tokio są zazwyczaj różne między poziomem powiększenia 18 i 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;
Zobacz przykład

Zobacz próbkę