Сервис изображений с максимальным увеличением

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.
  1. Изображение с максимальным увеличением
  2. Запросы MaxZoom
  3. Ответы MaxZoom

Обзор

Google Maps API предоставляет фрагменты карты с различными уровнями масштабирования для изображений типа карты. Например, большинство изображений дорожных карт доступны с уровнями масштабирования от 0 до 18. Спутниковые изображения различаются более широко, поскольку эти изображения не создаются, а непосредственно фотографируются.

Поскольку спутниковые изображения не всегда доступны с высоким уровнем масштабирования для удаленных мест — малонаселенных районов или районов открытого океана — вам может потребоваться заранее узнать самый высокий уровень масштабирования для изображений в данном месте. Объект MaxZoomService предоставляет простой интерфейс для определения максимального уровня масштабирования в заданном месте, для которого в Картах Google есть спутниковые изображения.

Запросы MaxZoom

Доступ к MaxZoomService является асинхронным, поскольку API Карт Google должен выполнить вызов на внешний сервер. По этой причине вам необходимо передать метод обратного вызова для выполнения после завершения запроса. Этот метод обратного вызова должен обрабатывать результат.

Чтобы инициировать запрос к MaxZoomService , вызовите getMaxZoomAtLatLng() , передав LatLng местоположения и функцию обратного вызова, которая будет выполняться после завершения запроса.

Ответы MaxZoom

Когда getMaxZoomAtLatLng() выполняет функцию обратного вызова , она возвращает два параметра:

  • status содержит MaxZoomStatus запроса.
  • zoom содержит уровень масштабирования. Если по какой-либо причине служба выйдет из строя, это значение не будет присутствовать.

Код status может возвращать одно из следующих значений:

  • OK означает, что служба нашла максимальный уровень масштабирования для спутниковых изображений.
  • ERROR указывает, что запрос MaxZoom не может быть обработан.

В следующем примере показана карта мегаполиса Токио. Щелчок в любом месте карты указывает максимальный уровень масштабирования в этом месте. (Уровни масштабирования вокруг Токио обычно варьируются между уровнями масштабирования 18 и 21.)

Машинопись

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;
Посмотреть пример

Попробуйте образец