Як відключити масштабування коліщатка прокрутки миші в Google Maps API

Я використовую Google Maps API (v3), щоб намалювати кілька карт на сторінці. Одна річ, яку я хотів би зробити, це відключити масштабування, коли ви прокручуєте колесо миші над картою, але я не впевнений, як це зробити.

Я відключив елемент керування масштабуванням (тобто видалив елемент інтерфейсу масштабування), але це не заважає масштабуванню колеса прокрутки.

Ось частина моєї функції (це простий плагін jQuery):

$.fn.showMap = function(options, addr){
  options = $.extend({
    navigationControl: false,
    mapTypeControl: false,
    scaleControl: false,
    draggable: false,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }, options);
  var map = new google.maps.Map(document.getElementById($(this).attr('id')), options);

  // Code cut from this example as not relevant
};
Рішення

У версії 3 Maps API ви можете просто встановити опцію scrollwheel в false у властивостях MapOptions:

options = $.extend({
    scrollwheel: false,
    navigationControl: false,
    mapTypeControl: false,
    scaleControl: false,
    draggable: false,
    mapTypeId: google.maps.MapTypeId.ROADMAP
}, options);

Якщо ви використовували версію 2 Maps API, вам потрібно було б використовувати виклик API disableScrollWheelZoom() наступним чином:

map.disableScrollWheelZoom();

Масштабування scrollwheel за замовчуванням увімкнено у версії 3 Maps API, але у версії 2 воно вимкнене, якщо його не увімкнути явно за допомогою виклику enableScrollWheelZoom() API.

Коментарі (5)

Daniel's code робить свою роботу (величезне спасибі!). Але я хотів повністю вимкнути масштабування. Я виявив, що для цього потрібно використовувати всі чотири варіанти:

{
  zoom: 14,                        // Set the zoom level manually
  zoomControl: false,
  scaleControl: false,
  scrollwheel: false,
  disableDoubleClickZoom: true,
  ...
}

Дивіться: Специфікація об'єкта MapOptions

Коментарі (4)

У моєму випадку ключовим моментом було задати в init 'scrollwheel':false. Зверніть увагу: Я використовую jQuery UI Map. Нижче наведено заголовок моєї функції CoffeeScript init:

 $("#map_canvas").gmap({'scrollwheel':false}).bind "init", (evt, map) ->
Коментарі (0)