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 Haritalar API'si, harita türü görüntüler için çeşitli yakınlaştırma düzeylerinde harita desenleri sunar. Örneğin, yol haritası görüntülerinin çoğu 0 ila 18 yakınlaştırma düzeylerinde mevcuttur. Bu görüntüler oluşturulmayıp doğrudan fotoğraflandığı için uydu görüntüleri daha çok farklılık gösterir.

Uzak konumlar için (seyrek nüfuslu alanlar veya açık okyanus alanları) yüksek yakınlaştırma seviyelerinde her zaman uydu görüntüleri mevcut olmadığı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'da uydu görüntülerinin bulunduğu belirli bir konumdaki maksimum yakınlaştırma düzeyini öğrenmek için basit bir arayüz sunar.

MaxZoom İstekleri

Google Maps API'nin harici bir sunucuya çağrı yapması gerektiğinden MaxZoomService alanına erişim eşzamansızdır. Bu nedenle, isteğin tamamlanmasının ardından yürütülecek bir callback yöntemi iletmeniz gerekir. Bu geri çağırma yöntemi sonucu işlemelidir.

MaxZoomService öğesine bir istek başlatmak için konumun LatLng değerini ve istek tamamlandığında yürütülecek bir geri çağırma işlevini ileterek getMaxZoomAtLatLng() çağrısı yapın.

MaxZoom Yanıtları

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

  • 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 mevcut olmaz.

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 belirtir.

Aşağıdaki örnekte, bir metropol Tokyo haritası gösterilmektedir. Haritada herhangi bir yerin tıklanması, o konumdaki maksimum yakınlaştırma düzeyini belirtir. (Tokyo çevresindeki yakınlaştırma seviyeleri genellikle 18 ve 21 arasındaki yakınlaştırma seviyeleri arasında 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örüntüleyin

Örneği Deneyin