2012-09-21 45 views
6

'u devre dışı bırakma Bir işaretçiyi sürüklediğim süre için bir google mal (v3) içindeki hareketin devre dışı bırakılması mümkün mü? Statik harita kullanmak istemiyorum. Hareketin genel işlevine ihtiyacım var, ama bir işaretçiyi sürüklediğim an, harita hareket etmemeli.Hareketli Gmap

Çok teşekkürler!

cevap

15

İşaretçiler dragstart and dragend events var. dragstart'da, (falsefalse, scrollwheel vb.) Ayarlarına göre Haritadaki "hareket" işlevini devre dışı bırakın. dragend'da, MapOptions öğesini true olarak ayarlayın.

Harita hareketini bir boole üzerinde devre dışı bırakmak veya etkinleştirmek için kullanabileceğiniz bir işlev. Harita değişkeni map olduğunu varsayar.

google.maps.event.addListener(marker, 'dragstart', function() { 
    disableMovement(true); 
}); 

google.maps.event.addListener(marker, 'dragend', function() { 
    disableMovement(false); 
}); 
+0

Tamam - ama bir haritanın hareketini devre dışı bırakmak için özellik nedir? – Thomas1703

+2

@ Thomas1703 Bu gerçekten MapOptions'ın bir bileşimi. "Sürüklenebilir" ifadesini "yanlış" olarak ayarlamak, örneğin, kaydırmayı devre dışı bırakır. "Scrollwheel" öğesini "false" olarak ayarlamak, yakınlaştırmak için farenin kaydırma tekerini kullanmayı devre dışı bırakır. disableDoubleClickZoom işlevi, kullanıcının fareyi yakınlaştırmak için çift tıklayamadığından bunu true olarak ayarlamasını sağlar. Ve bütünlük için, 'zoomControl 'özelliğini' false 'olarak ayarlayarak devre dışı bırakın, böylece harita üzerindeki yakınlaştırma kontrolleri gizlenir. Bunların hepsi birlikte, kullanıcının haritayı hareket ettirmesini kısıtlamalıdır. Sürüklerken, bu özelliklerin tümünü varsayılan değerlerine geri koyun. Hangi MapOptions'ın ayarlanacağını öğrenmek için dokümanları okuyun. – Gady

+0

@ Thomas1703 Cevabımı setOptions yöntemini kullanarak bazı örnek kodlarla güncelledim. – Gady

3

gmap.setOptions ({ 'kaydırma tekerleği':: false})

function disableMovement(disable) { 
    var mapOptions; 
    if (disable) { 
     mapOptions = { 
      draggable: false, 
      scrollwheel: false, 
      disableDoubleClickZoom: true, 
      zoomControl: false 
     }; 
    } else { 
     mapOptions = { 
      draggable: true, 
      scrollwheel: true, 
      disableDoubleClickZoom: false, 
      zoomControl: true 
     }; 
    } 
    map.setOptions(mapOptions); 
} 

Sonra böyle etkinliklerinizde kullanacağız (sizin Marker değişkendir);