Service Maximum Zoom Imagery

  1. Maximum Zoom Imagery
  2. Requêtes MaxZoom
  3. Réponses MaxZoom

Présentation

L'API Google Maps fournit des tuiles de carte à différents niveaux de zoom pour les images des types de carte. La plupart des images de carte routière sont, par exemple, disponibles aux niveaux de zoom 0 à 18. Les images satellite varient davantage, car elles ne sont pas générées, mais directement photographiées.

Étant donné que les images satellite ne sont pas toujours disponibles aux niveaux de zoom élevés pour les lieux reculés (par exemple, les zones à faible densité de population ou les espaces océaniques ouverts), vous pourriez avoir besoin de connaître à l'avance le niveau de zoom le plus élevé pour les images à un point géographique donné. L'objet MaxZoomService fournit une interface simple pour connaître le niveau de zoom maximal sur un lieu donné pour lequel Google Maps propose des images satellite.

Requêtes MaxZoom

L'API Google Maps devant appeler un serveur externe, l'accès au MaxZoomService est asynchrone. Pour cette raison, vous devez transmettre une méthode de rappel à exécuter à la fin de la requête. Cette méthode de rappel doit traiter le résultat.

Pour lancer une requête au MaxZoomService, appelez getMaxZoomAtLatLng() en transmettant la valeur LatLng du lieu et une fonction de rappel à exécuter une fois la requête terminée.

Réponses MaxZoom

Lorsque getMaxZoomAtLatLng() exécute la fonction de rappel, elle renvoie deux paramètres :

  • status contient le MaxZoomStatus de la requête.
  • zoom contient le niveau de zoom. En cas d'échec du service, aucune valeur ne sera indiquée.

Le code status peut renvoyer l'une des valeurs suivantes :

  • OK indique que le service a trouvé le niveau de zoom maximal pour les images satellite.
  • ERROR indique que la requête MaxZoom n'a pas pu être traitée.

L'exemple suivant montre une carte de la zone métropolitaine de Tokyo. Un clic sur un point de la carte indique le niveau de zoom maximal de ce lieu. (Les niveaux de zoom autour de Tokyo varient généralement de 18 à 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;
Voir un exemple

Essayer l'exemple