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

  1. Maksimum Zumlu Görüntüler
  2. MaxZoom İstekleri
  3. MaxZoom Yanıtları

Genel Bakış

Google Maps API, çeşitli Google Haritalar API'leri için yakınlaştırma düzeyleri. Çoğu yol haritası görüntüler 0 ile 18 arasındaki zum düzeylerinden örneğine bakalım. Uydu görüntüleri bu şekilde daha fazla değişiklik gösterir görüntüler oluşturulmaz, ancak doğrudan fotoğrafları çekilir.

Uydu görüntüleri her zaman mevcut olmadığından uzak konumlar için yüksek yakınlaştırma düzeyleri (seyrek nüfuslu) açık okyanus alanları gibidir; gözünüzün önünde belirli bir konumdaki görüntüler için en yüksek yakınlaştırma düzeyini bilmek kontrol edin. MaxZoomService nesnesi, bir düzeyde maksimum yakınlaştırma düzeyinin keşfedilmesini sağlayan basit arayüz Google Haritalar'ın uydu görüntülerine sahip olduğu konum.

MaxZoom İstekleri

MaxZoomService öğesine erişim eşzamansız olduğundan, Google Maps API'nin harici bir sunucuya çağrı yapması gerekiyor. Örneğin, Bu nedenle, yürütme işlemi için bir callback kabul edersiniz. Bu geri çağırma yöntemi, yardımcı olur.

MaxZoomService için bir istek başlatmak için getMaxZoomAtLatLng() adlı kişiyi Konumun LatLng ve bir geri arama işlevi yerine getirmesi gerekir.

MaxZoom Yanıtları

getMaxZoomAtLatLng(), geri çağırmayı yürüttüğünde fonksiyonunu kullanmak için iki parametre geri verilir:

  • status, MaxZoomStatus alt dizesini içeriyor hakkında daha fazla bilgi edinin.
  • zoom, yakınlaştırma düzeyini içeriyor. Herhangi bir nedenle hizmet başarısız olursa bu değer olmaz.

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

  • OK, hizmetin maksimum yakınlaştırmayı bulduğunu gösterir seviyelerini belirleyin.
  • ERROR, MaxZoom isteğinin olduğunu gösterir işlenemedi.

Aşağıdaki örnekte, Tokyo büyükşehir haritası gösterilmektedir. Haritada herhangi bir yeri tıkladığınızda maksimum yakınlaştırma düzeyi gösterilir oluşturabilirsiniz. (Tokyo yakınlarındaki yakınlaştırma düzeyleri genellikle değişiklik gösterir (yakınlık düzeyleri 18 ile 21 arasında olmalıdır).

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 inceleyin

Örneği Deneyin