отключить масштабирование перетаскиванием на картах Google, нажав на кнопку - PullRequest
43 голосов
/ 20 ноября 2011

Я хочу добавить коды внутри функции disable (), чтобы отключить перетаскивание и масштабирование в API карт Google v3, нажав кнопку «отключить».

<script type="text/javascript">
   var map;

  function initialize() {
var uluru = new google.maps.LatLng(21, 57);
map = new google.maps.Map(document.getElementById("map"), {
  zoom: 6,
  center: uluru,
  mapTypeId: google.maps.MapTypeId.HYBRID
});
}


function disable(){

}

</script>


<body onload="initialize()" >

   <input type="button" id="next" value="disableZoomDrag" onclick="disable()">

</body>

Ответы [ 2 ]

123 голосов
/ 21 ноября 2011

Вы можете использовать метод setOptions() для объекта карты:

map.setOptions({draggable: false, zoomControl: false, scrollwheel: false, disableDoubleClickZoom: true});

Если это не мешает масштабированию, вы всегда можете установить минимальное и максимальное масштабирование натекущий уровень масштабирования.

Существует также опция disableDefaultUI, которая, вероятно, учитывает все эти события, но может отключить нажатие на существующие элементы.

2 голосов
/ 13 октября 2017

@ Ответ Скотта указал мне правильное направление использования map.setOptions().Однако из документации API я обнаружил, что есть более элегантный набор параметров для настройки.Возможно, они новее, чем ответ, но они работают довольно хорошо для меня.

function disablePanningAndScrolling()
{
    map.setOptions({
        zoomControl: false,
        gestureHandling: 'none'
    });
}

Это полностью отключает масштабирование и панорамирование.

Чтобы вернуть все в нормальное состояние, просто установите свойства обратноих значения по умолчанию:

function enablePanningAndScrolling()
{
    map.setOptions({
        zoomControl: true,
        gestureHandling: 'greedy' // or 'cooperative'*
    });
}

*: по умолчанию используется жадность, если страница не прокручивается, если она совместная.Укажите, какая ситуация была в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...