Yakınlaştırma ve kaydırma işlemlerini kontrol etme

Platform seçin: Android iOS JavaScript

Genel Bakış

Bir web sayfasında harita kullanımı, kullanıcıların haritayı yakınlaştırmak ve kaydırmak için haritayla etkileşim kurma şeklini kontrol etmek üzere belirli seçenekler gerektirebilir. gestureHandling, minZoom, maxZoom ve restriction gibi bu seçenekler, MapOptions arayüzünde tanımlanır.

Varsayılan Davranış

Aşağıdaki harita, yalnızca zoom ve center seçenekleri tanımlanarak oluşturulan bir haritayla yapılan harita etkileşimlerinin varsayılan davranışını gösterir.

Bu haritanın kodu aşağıda verilmiştir.

TypeScript

new google.maps.Map(document.getElementById("map")!, {
  zoom,
  center,
});

JavaScript

new google.maps.Map(document.getElementById("map"), {
  zoom,
  center,
});

Hareket işleme özelliğini kontrol etme

Kullanıcı harita içeren bir sayfayı kaydırdığında, kaydırma işlemi istemeden haritanın yakınlaştırılmasına neden olabilir. Bu davranış, gestureHandling harita seçeneği kullanılarak kontrol edilebilir.

gestureHandling: cooperative

Aşağıdaki haritada gestureHandling seçeneği cooperative olarak ayarlanmıştır. Bu sayede kullanıcı, haritayı yakınlaştırmadan veya kaydırmadan sayfayı normal şekilde kaydırabilir. Kullanıcılar, yakınlaştırma kontrollerini tıklayarak haritayı yakınlaştırabilir. Ayrıca, dokunmatik ekranlı cihazlarda haritada iki parmakla hareket ederek yakınlaştırabilir ve kaydırabilirler.

Bu haritanın kodu aşağıda verilmiştir.

TypeScript

new google.maps.Map(document.getElementById("map")!, {
  zoom,
  center,
  gestureHandling: "cooperative",
});

JavaScript

new google.maps.Map(document.getElementById("map"), {
  zoom,
  center,
  gestureHandling: "cooperative",
});

Örneği görüntüle

gestureHandling: auto

Sayfanın üst kısmında gestureHandling seçeneği olmayan harita, gestureHandling ayarı cooperative olarak belirlenmiş önceki haritayla aynı şekilde davranır. Bunun nedeni, bu sayfadaki tüm haritaların bir <iframe> içinde olmasıdır. Varsayılan gestureHandling değeri auto, haritanın <iframe> içinde olup olmamasına bağlı olarak greedy ile cooperative arasında geçiş yapar.

<iframe> içinde yer alan harita Davranış
evet cooperative
hayır greedy

gestureHandling: greedy

gestureHandling özelliği greedy olarak ayarlanmış bir harita aşağıda gösterilmektedir. Bu harita, cooperative'nın aksine tüm dokunma hareketlerine ve kaydırma etkinliklerine tepki verir.

gestureHandling: none

gestureHandling seçeneği, haritada hareketleri devre dışı bırakmak için none olarak da ayarlanabilir.

Kaydırma ve yakınlaştırmayı devre dışı bırakma

Haritayı kaydırma ve yakınlaştırma özelliğini tamamen devre dışı bırakmak için gestureHandling ve zoomControl seçeneklerinin eklenmesi gerekir.

TypeScript

new google.maps.Map(document.getElementById("map")!, {
  zoom,
  center,
  gestureHandling: "none",
  zoomControl: false,
});

JavaScript

new google.maps.Map(document.getElementById("map"), {
  zoom,
  center,
  gestureHandling: "none",
  zoomControl: false,
});

Aşağıdaki harita, yukarıdaki kodda gestureHandling ve zoomControl özelliklerinin birleşimini gösterir.

Harita sınırlarını ve yakınlaştırmayı kısıtlama

Hareketlere ve yakınlaştırma kontrollerine izin vermek ancak haritayı belirli sınırlar veya minimum ve maksimum yakınlaştırma ile kısıtlamak isteyebilirsiniz. Bunu yapmak için restriction, minZoom ve maxZoom seçeneklerini ayarlayabilirsiniz. Aşağıdaki kod ve harita, bu seçenekleri göstermektedir.

TypeScript

new google.maps.Map(document.getElementById("map")!, {
  zoom,
  center,
  minZoom: zoom - 3,
  maxZoom: zoom + 3,
  restriction: {
    latLngBounds: {
      north: -10,
      south: -40,
      east: 160,
      west: 100,
    },
  },
});

JavaScript

new google.maps.Map(document.getElementById("map"), {
  zoom,
  center,
  minZoom: zoom - 3,
  maxZoom: zoom + 3,
  restriction: {
    latLngBounds: {
      north: -10,
      south: -40,
      east: 160,
      west: 100,
    },
  },
});