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 fazla farklılık gösterir.

Uzak konumlarda yüksek yakınlaştırma düzeylerinde (seyrek nüfuslu alanlar veya açık okyanus alanları) 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 öğrenmek isteyebilirsiniz. MaxZoomService nesnesi, Google Haritalar'ın uydu görüntülerine sahip olduğu belirli bir konumdaki maksimum yakınlaştırma düzeyini öğrenmek için basit bir arayüz sunar.

MaxZoom İstekleri

Google Haritalar API'sinin harici bir sunucuya çağrı yapması gerektiğinden, MaxZoomService alanına erişim eşzamansız olarak yapılı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şler.

MaxZoomService öğesine bir istek başlatmak için konumun LatLng değerini ve isteğin tamamlanmasının ardından 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 iletir:

  • status, isteğin MaxZoomStatus değerini içerir.
  • zoom, yakınlaştırma düzeyini içeriyor. 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 yeri tıkladığınızda, söz konusu konumdaki maksimum yakınlaştırma düzeyi belirtilir. (Tokyo çevresindeki yakınlaştırma düzeyleri genellikle 18 ve 21 arasında bir değişiklik gösterir.)

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