2010-12-14 5 views
3

Je dispose d'une interface permettant à un utilisateur de gérer plusieurs emplacements pour son activité, en ajoutant des emplacements supplémentaires et en supprimant les emplacements dont il n'a plus besoin.Activer/désactiver le verrouillage et le verrouillage du marqueur dans l'API Google Maps v3

Dans mon interface, je montre une liste d'emplacements chacun avec leur propre carte.

Ma question est de savoir comment verrouiller une carte pour empêcher l'utilisateur de faire un panoramique ou de déplacer le marqueur jusqu'à ce qu'il clique sur le bouton "modifier l'emplacement"?

Existe-t-il une fonction toggleMapLock?

Jusqu'à présent, j'ai les deux méthodes suivantes. Le verrou(); méthode fonctionne bien, mais le déverrouillage(); méthode ne fonctionne pas pour une raison quelconque.

lock: function() { 
    this.map.disableDoubleClickZoom = true; 
    this.map.draggable = false; 
    this.map.keyboardShortcuts = false; 
    this.map.navigationControl = false; 
    this.map.scaleControl = false; 
    this.map.scrollwheel = false; 
    this.map.streetViewControl = false; 
    this.marker.draggable = false; 
}, 

unlock: function() { 
    this.map.disableDoubleClickZoom = false; 
    this.map.draggable = true; 
    this.map.keyboardShortcuts = true; 
    this.map.navigationControl = true; 
    this.map.scaleControl = true; 
    this.map.scrollwheel = true; 
    this.map.streetViewControl = true; 
    this.marker.draggable = true; 
    console.log("unlock"); 
}, 

Répondre

4

disableDoubleClickZoom (et les autres propriétés énumérées) ne sont pas des propriétés publiques sur la classe de la carte - ils sont la propriété de la classe MapOptions. Pour changer la valeur dont vous avez besoin quelque chose de semblable à ce qui suit:

lock: function() { 
    this.map.setOptions({ 
    disableDoubleClickZoom: true, 
    draggable: false 
    }); 
}, 

unlock: function() { 
    this.map.setOptions({ 
    disableDoubleClickZoom: false, 
    draggable: true 
    }); 
} 

Cela crée un objet MapOptions (dans le {} s) et passe à SetOptions, qui met à jour l'état actuel de la carte en fonction des valeurs passé.

Questions connexes