Service Maximum Zoom Imagery

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.
  1. Images avec zoom maximal
  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 de type de carte. La plupart des images de carte routière sont disponibles à des niveaux de zoom de 0 à 18, par exemple. Les images satellite varient beaucoup, car elles ne sont pas générées, mais directement photographiées.

Étant donné que les images satellite ne sont pas toujours disponibles à des niveaux de zoom élevés pour les lieux distants (zones faiblement peuplées ou océaniques), vous devez au préalable connaître le niveau de zoom le plus élevé pour les images à un point donné. L'objet MaxZoomService fournit une interface simple permettant de découvrir le niveau de zoom maximal à un point géographique pour lequel Google Maps dispose d'images satellite.

Requêtes MaxZoom

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

Pour envoyer une requête à MaxZoomService, appelez getMaxZoomAtLatLng() en transmettant la valeur LatLng de l'établissement 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. Si, pour une raison quelconque, le service échoue, cette valeur n'est pas présente.

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. Cliquez n'importe où sur la carte pour connaître le niveau de zoom maximal à ce point géographique. (Les niveaux de zoom autour de Tokyo varient généralement entre les niveaux de zoom 18 et 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,
    (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