2012-08-22 10 views
20

¿Cómo puedo modificar un mapOptions del mapa V3 (después de que se haya cargado el mapa inicial)?Cambiar el objeto MapOptions de Google Maps v3 después de la carga

En concreto, me gustaría ser capaz de voltear la opción

draggable: false 

a

draggable: true 

Cuando se activa una acción (como un clic en un div).

Adición: He tratado de carga jQuery-UI-mapa y el uso de:

$('#map').gmap('option', 'draggable', true); 

Sin embargo, esto parece volver a cargar el mapa y olvidar todas las otras opciones existentes. Podría redefinirlos a todos, pero parece un poco hackish.

Cualquier puntero apreciado.

Gracias!

+1

que iba a decir, ¿por qué en la Tierra complicar las cosas con jQuery cuando es bastante fácil de hacerlo directamente .... contenta de que ya se descubrió?. :-) – Marcelo

+0

Responda su propia pregunta para cerrarlo. –

+0

alguna idea de por qué esto no funciona para actualizar los controles? es decir, map.set (scaleControl, false); –

Respuesta

36

Encontré que ni siquiera necesito jQuery para esto, ya es parte de la API de Google Maps. Simplemente hazlo:

map.set('draggable', true); 

¡Demasiado fácil! Espero que ayude a alguien.

2

Si ya ha creado el mapa previamente, se puede establecer varias opciones (https://developers.google.com/maps/documentation/javascript/reference#MapOptions) a la vez como esto:

var myOptions = { 
        zoom:11, 
        center: new google.maps.LatLng(-34.397, 150.644), 
        mapTypeId: google.maps.MapTypeId.ROADMAP, 
        panControl: false 
       }; 

map.set(myOptions); 
+3

Este tipo de funcionó para mí, pero mi objeto de mapa no tiene una función 'set()', así que tuve que usar 'setOptions (myOptions) ', ¡pero gracias por la sugerencia! – Unixmonkey

+0

@Unixmonkey Gracias =) –

5

JavaScript de Google Maps API v3.25 actualización

Tenga en cuenta que map.set() no funciona en las versiones más nuevas de Maps API. Usted tiene que utilizar map.setOptions()

Fuente: Google Maps Reference

+1

Buen punto. Uso de sintaxis rápida para los que no están familiarizados: map.setOptions ({gestureHandling: 'greedy'}); – Ian

Cuestiones relacionadas