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, harita türü görüntüler için çeşitli yakınlaştırma düzeylerinde harita karoları sağlar. Örneğin, yol haritası görüntülerinin çoğu 0 ila 18 arası yakınlaştırma seviyelerinde kullanılabilir. Bu görüntüler oluşturulmadığı için doğrudan fotoğraflandığından uydu görüntüleri daha geniş bir çeşitlilik gösterir.

Uydu görüntüleri, uzak konumlar (az nüfuslu alanlar veya açık okyanus alanları) için her zaman yüksek yakınlaştırma düzeylerinde kullanılamayabileceğinden, 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üsü sağladığı belirli bir konumdaki maksimum yakınlaştırma düzeyini keşfetmek için basit bir arayüz sunar.

MaxZoom İstekleri

Google Maps API'nin harici bir sunucuya çağrı yapması gerektiğinden MaxZoomService öğesine erişme işlemi eşzamansızdır. Bu nedenle, istek tamamlandıktan sonra çalıştırılacak bir geri çağırma yöntemi iletmeniz gerekir. Bu geri çağırma yöntemi sonucu işlemelidir.

MaxZoomService için istek başlatmak üzere getMaxZoomAtLatLng()'i çağırın. Bu sırada konumun LatLng değerini ve istek tamamlandığında çalıştırılacak bir geri çağırma işlevini iletin.

MaxZoom Yanıtları

getMaxZoomAtLatLng(), geri çağırma işlevini yürüttüğünde iki parametre döndürür:

  • status, isteğin MaxZoomStatus
  • 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 gösterir.
  • ERROR, MaxZoom isteğinin işlenemediğini gösterir.

Aşağıdaki örnekte Tokyo metropolünün haritası gösterilmektedir. Haritada herhangi bir yeri tıkladığınızda o konumdaki maksimum yakınlaştırma seviyesi gösterilir. (Tokyo çevresindeki yakınlaştırma seviyeleri genellikle 18 ile 21 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