Sto usando Google Maps API (v3) per disegnare alcune mappe su una pagina. Una cosa che vorrei fare è disabilitare lo zoom quando si fa scorrere la rotellina del mouse sulla mappa, ma non sono sicuro di come.
Ho disabilitato lo scaleControl (cioè rimosso l'elemento UI di scalatura), ma questo non impedisce lo scaling della rotella del mouse.
Ecco una parte della mia funzione (è un semplice 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
};
Nella versione 3 dell'API delle mappe puoi semplicemente impostare l'opzione scrollwheel
su false all'interno delle proprietà MapOptions:
options = $.extend({
scrollwheel: false,
navigationControl: false,
mapTypeControl: false,
scaleControl: false,
draggable: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
}, options);
Se stavi usando la versione 2 delle API delle mappe avresti dovuto usare la chiamata API disableScrollWheelZoom() come segue:
map.disableScrollWheelZoom();
Lo zoom scrollwheel
è abilitato di default nella versione 3 delle API di Maps, ma nella versione 2 è disabilitato a meno che non sia esplicitamente abilitato con la chiamata API enableScrollWheelZoom()
.
Il codice di Daniel fa il lavoro (grazie mille!). Ma volevo disabilitare completamente lo zoom. Ho scoperto che dovevo usare tutte e quattro queste opzioni per farlo:
{
zoom: 14, // Set the zoom level manually
zoomControl: false,
scaleControl: false,
scrollwheel: false,
disableDoubleClickZoom: true,
...
}
Nel mio caso la cosa cruciale era impostare in 'scrollwheel':false
in init. Nota: Sto usando jQuery UI Map
. Di seguito è riportato il mio titolo della funzione init CoffeeScript:
$("#map_canvas").gmap({'scrollwheel':false}).bind "init", (evt, map) ->