Maksimum Yakınlaştırma Görüntü Hizmeti

  1. Maksimum Yakınlaştırma Görüntüleri
  2. MaxZoom İstekleri
  3. MaxZoom Yanıtları

Genel bakış

Google Maps API, harita türü görüntüleri için çeşitli yakınlık düzeylerinde harita parçaları sağlar. Örneğin, çoğu yol haritası görüntüsü, 0 ile 18 arasındaki yakınlaştırma düzeylerinden elde edilir. Bu görüntüler oluşturulmadığı, ancak doğrudan fotoğraflandığı için uydu görüntüleri daha geniş çapta değişir.

Uydu görüntüleri her zaman yüksek konumlarda (uzak olmayan alanlar veya açık okyanus alanları) kullanılamadığından, belirli bir konumdaki görüntüler için en yüksek yakınlaştırma düzeyini önceden bilmek isteyebilirsiniz. MaxZoomService nesnesi, Google Haritalar'ın uydu görüntülerine sahip olduğu belirli bir konumdaki maksimum yakınlaştırma düzeyini keşfetmeniz için basit bir arayüz sağlar.

MaxZoom İstekleri

Google Haritalar API'sinin harici bir sunucuya çağrı yapması gerektiğinden, MaxZoomService özelliğine erişim eşzamansızdır. Bu nedenle, istek tamamlandığında yürütme işleminin yürütülmesi için geri çağırma yöntemi iletmeniz gerekir. Bu geri çağırma yöntemi, sonucu işlemelidir.

MaxZoomService için bir istek başlatmak amacıyla, konumun LatLng bilgisini ve istek tamamlandığında yürütülecek bir geri çağırma işlevini kullanarak getMaxZoomAtLatLng() çağrısı yapın.

MaxZoom Yanıtları

getMaxZoomAtLatLng(), callback işlevini yürüttüğünde iki parametre geri verir:

  • status, isteğin MaxZoomStatus değerini içerir.
  • zoom yakınlaştırma düzeyini içerir. Herhangi bir nedenle hizmet başarısız olursa bu değer gösterilmez.

status kodu, aşağıdaki değerlerden birini döndürebilir:

  • OK, hizmetin uydu görüntüleri için maksimum yakınlaştırma düzeyini bulduğunu belirtir.
  • ERROR, MaxZoom isteğinin işlenemediğini gösterir.

Aşağıdaki örnekte Tokyo metropolü haritası gösterilmektedir. Haritada herhangi bir yeri tıkladığınızda söz konusu konumdaki maksimum yakınlaştırma düzeyi gösterilir. (Tokyo genelindeki yakınlaştırma seviyeleri genellikle yakınlaştırma düzeyi 18 ve 21 olarak değişir.)

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;
Örneği göster

Örneği Dene