554 votes

Comment désactiver le défilement de la souris-roue de mise à l'échelle avec l'API Google Maps

Je suis à l'aide de l'API Google Maps (v3) pour en tirer quelques cartes sur une page. Une chose que je voudrais faire est de désactiver le zoom lorsque vous faites défiler la molette de la souris sur la carte, mais je ne suis pas sûr de savoir comment.

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

Voici une partie de ma fonction (c'est 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
};

Merci pour votre aide.

982voto

Daniel Vassallo Points 142049

Dans la version 3 de l'API des Cartes, vous pouvez simplement régler la molette de défilement option à false dans le MapOptions propriétés:

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

Si vous utilisez une version 2 de l'API des Cartes que vous auriez dû utiliser la disableScrollWheelZoom() appel d'API comme suit:

map.disableScrollWheelZoom();

La molette de défilement, le zoom est activé par défaut dans la version 3 de l'API des Cartes, mais dans la version 2, il est désactivé, sauf si explicitement activé avec l' enableScrollWheelZoom() appel d'API.

103voto

Simon Points 4467

Daniel du code de l'emploi (tas merci!). Mais j'ai voulu désactiver le zoom complètement. J'ai trouvé que j'avais à utiliser l'ensemble de ces quatre options pour le faire:

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

Voir: http://code.google.com/apis/maps/documentation/javascript/reference.html#MapOptions

30voto

FelipeP Points 456

Juste au cas où vous souhaitez le faire dynamiquement;

function enableScrollwheel(map) {
    if(map) map.setOptions({ scrollwheel: true });
}

function disableScrollwheel(map) {
    if(map) map.setOptions({ scrollwheel: false });
}

Parfois, vous avez à montrer somenting "complexe" sur la carte (ou la carte est une petite partie de la mise en page) et ce de défilement, le zoom est dans la moyenne, mais une fois que vous avez un propre carte, cette façon de zoomer est agréable.

6voto

andi Points 1035

Dans mon cas, l'essentiel était de mettre en 'scrollwheel':false dans l'init. Ci-dessous mon coffescript fonction init rubrique:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X