禁用可移动的Gmap

Tho*_*703 6 google-maps

是否可以在拖动标记的时候禁用google mal(v3)中的移动?我不想使用即静态地图.我需要移动的通用功能,但是目前我拖动一个标记,地图不应该移动.

非常感谢!

Gad*_*ady 17

标记有dragstart和dragend事件.在dragstart通过各种设置禁止在地图上的"运动"功能的MapOptionsfalse,像draggable,scrollwheel等上dragend,设置在MapOptions回true.

这是一个可用于禁用或启用基于布尔值的地图移动的函数.它假设你的Map变量是map.

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);
}
Run Code Online (Sandbox Code Playgroud)

然后你在这样的事件中使用它(marker是你的标记变量):

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

google.maps.event.addListener(marker, 'dragend', function() {
    disableMovement(false);
});
Run Code Online (Sandbox Code Playgroud)

  • @ Thomas1703它实际上是MapOptions的组合.例如,将`draggable`设置为`false`会禁用平移.将`scrollwheel`设置为`false`将禁止使用鼠标滚轮进行缩放.`disableDoubleClickZoom`使得用户无法双击鼠标进行缩放,因此将其设置为"true".并且为了完整性,通过将其设置为"false"来禁用`zoomControl`,以便隐藏地图上的缩放控件.所有这些一起应该限制用户移动地图.在draggend上,将所有这些属性设置回默认值.阅读文档以了解要设置的MapOptions. (2认同)