Comment désactiver la mise à l'échelle de la molette de la souris avec l'API Google Maps

J'utilise l'API Google Maps (v3) pour dessiner quelques cartes sur une page. J&#8217aimerais désactiver le zoom lorsque vous faites défiler la molette de la souris sur la carte, mais je ne sais pas comment faire.

J'ai désactivé le scaleControl (c'est-à-dire que j'ai supprimé l'élément d'interface utilisateur de mise à l'échelle), mais cela n'empêche pas la mise à l'échelle de la molette de défilement.

Voici une partie de ma fonction (c&#8217est un simple plugin 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
};
Solution

Dans la version 3 de l'API Maps, vous pouvez simplement définir l'option scrollwheel sur false dans les propriétés [MapOptions][2] :

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

Si vous utilisiez la version 2 de l'API Maps, vous auriez dû utiliser l'appel API [disableScrollWheelZoom()][1] comme suit :

map.disableScrollWheelZoom();

Le zoom scrollwheel est activé par défaut dans la version 3 de l'API Maps, mais dans la version 2, il est désactivé à moins d'être explicitement activé avec l'appel d'API enableScrollWheelZoom().

[1] : http://code.google.com/apis/maps/documentation/reference.html#GMap2.disableScrollWheelZoom [2] : http://code.google.com/apis/maps/documentation/v3/reference.html#MapOptions

Commentaires (5)

[Le code de Daniel][1] fait l'affaire (merci beaucoup !). Mais je voulais désactiver complètement le zoom. J'ai constaté que je devais utiliser les quatre options suivantes pour y parvenir :

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

Voir : [Spécification de l'objet MapOptions][2]

[1] : https://stackoverflow.com/questions/2330197/how-to-disable-mouse-scroll-wheel-scaling-with-google-maps-api/2330272#2330272 [2] : http://code.google.com/apis/maps/documentation/javascript/reference.html#MapOptions

Commentaires (4)

Dans mon cas, la chose cruciale a été de mettre en place 'scrollwheel':false dans init. Remarque : J'utilise jQuery UI Map. Voici l'intitulé de ma fonction init [CoffeeScript][1] :

 $("#map_canvas").gmap({'scrollwheel':false}).bind "init", (evt, map) ->

[1] : http://en.wikipedia.org/wiki/CoffeeScript

Commentaires (0)