Estoy usando la API de Google Maps (v3) para dibujar algunos mapas en una página. Una cosa que me gustaría hacer es desactivar el zoom cuando desplace la rueda del mouse sobre el mapa, pero no estoy seguro de cómo hacerlo.
He desactivado el control de escala (es decir, he eliminado el elemento de la interfaz de usuario de escala), pero esto no impide la escala de la rueda de desplazamiento.
Aquí es parte de mi función (es un simple complemento 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
};
jquery
google-maps
google-maps-api-3
jquery-plugins
aaronrussell
fuente
fuente
Respuestas:
En la versión 3 de la API de Maps, simplemente puede establecer la
scrollwheel
opción en falso dentro de las propiedades de MapOptions :Si estuviera utilizando la versión 2 de la API de Maps, habría tenido que utilizar la llamada a la API disableScrollWheelZoom () de la siguiente manera:
El
scrollwheel
zoom está habilitado de forma predeterminada en la versión 3 de la API de Maps, pero en la versión 2 está deshabilitado a menos que se habilite explícitamente con laenableScrollWheelZoom()
llamada a la API.fuente
disableDefaultUI: true
puede reemplazarnavigationControl: false, mapTypeControl: false, scaleControl: false
El código de Daniel hace el trabajo (¡gracias!). Pero quería deshabilitar el zoom por completo. Descubrí que tenía que usar las cuatro opciones para hacerlo:
Ver: especificación del objeto MapOptions
fuente
scrollwheel
debe ser todo en minúsculas (me sorprendió al mostrar la W)En caso de que quiera hacer esto dinámicamente;
A veces tiene que mostrar algo "complejo" sobre el mapa (o el mapa es una pequeña parte del diseño), y este zoom de desplazamiento se coloca en el medio, pero una vez que tiene un mapa limpio, esta forma de zoom es agradable.
fuente
¡Mantenlo simple! Variable original de Google Maps, ninguna de las cosas adicionales.
fuente
A partir de ahora (octubre de 2017) Google ha implementado una propiedad específica para manejar el zoom / desplazamiento, llamada
gestureHandling
. Su propósito es manejar la operación de dispositivos móviles, pero también modifica el comportamiento de los navegadores de escritorio. Aquí está de la documentación oficial :En resumen, puede forzar fácilmente la configuración a "siempre con zoom" (
'greedy'
), "nunca con zoom" ('none'
) o "el usuario debe presionar CRTL / ⌘ para habilitar el zoom" ('cooperative'
).fuente
Creé un complemento jQuery más desarrollado que le permite bloquear o desbloquear el mapa con un botón agradable.
Este complemento deshabilita el iframe de Google Maps con un div de superposición transparente y agrega un botón para desbloquearlo. Debe presionar durante 650 milisegundos para desbloquearlo.
Puede cambiar todas las opciones para su conveniencia. Compruébelo en https://github.com/diazemiliano/googlemaps-scrollprevent
Aquí hay un ejemplo.
fuente
Edit in JSFiddle Result JavaScript HTML CSS
" realmente parte del código?En mi caso, lo crucial fue establecerlo
'scrollwheel':false
en init. Aviso: estoy usandojQuery UI Map
. A continuación se muestra el título de mi función de inicio de CoffeeScript :fuente
Por si acaso, está utilizando la biblioteca GMaps.js , lo que hace que sea un poco más simple hacer cosas como geocodificación y pines personalizados, así es como resuelve este problema utilizando las técnicas aprendidas de las respuestas anteriores.
fuente
Para alguien que se pregunta cómo deshabilitar la API de JavaScript de Google Map
Se permitirá el desplazamiento de zoom si hace clic en el mapa una vez. Y deshabilite después de que su mouse salga del div.
Aquí hay un ejemplo
fuente
Solo necesita agregar opciones de mapa:
fuente
Una solución simple:
Fuente: https://github.com/Corsidia/scrolloff
fuente
Solo en caso de que alguien esté interesado en una solución CSS pura para esto. El siguiente código superpone un div transparente sobre el mapa y mueve el div transparente detrás del mapa cuando se hace clic. La superposición evita el zoom, una vez que se hace clic, y detrás del mapa, el zoom está habilitado.
Vea mi publicación de blog Google Maps alterna zoom con css para obtener una explicación de cómo funciona, y escriba pen codepen.io/daveybrown/pen/yVryMr para una demostración en funcionamiento.
Descargo de responsabilidad: esto es principalmente para el aprendizaje y probablemente no será la mejor solución para los sitios web de producción.
HTML:
CSS:
fuente
Use ese código, que le dará todo el control de color y zoom del mapa de Google. ( ScaleControl: falsa y scrollwheel: falsa evitará que la rueda del ratón a partir zoom hacia arriba o hacia abajo)
fuente
Lo hago con estos simples ejemplos.
jQuery
CSS
O use las opciones de gmap
fuente