J'utilise l'API Google Maps (v3) pour dessiner quelques cartes sur une page. J’aimerais 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’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
};
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
[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
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) ->