2012-06-05 17 views
5

Vorrei disattivare il tasto shift o la modalità a mano libera per il controllo DrawFeature. Un codice tipico sembra che:OpenLayers: Come disattivare il tasto shift o la modalità a mano libera per DrawFeature

var drawOptions = {handlerOptions: {freehand: true}}; 
drawFeatureControl = new OpenLayers.Control.DrawFeature(lineLayer, OpenLayers.Handler.Path, drawOptions); 
map.addControl(drawFeatureControl); 

C'è la possibilità di passare a mano libera su. Ma non c'è nulla da disattivare completamente. Ogni volta che premo shift, viene utilizzata la modalità a mano libera.

Nel mio caso di utilizzo mi piacerebbe utilizzare il tasto shift per un altro comportamento.

risposta

7

Vedi http://dev.openlayers.org/docs/files/OpenLayers/Handler/Path-js.html#OpenLayers.Handler.Path.freehandToggle

drawFeatureControl.handler.freehandToggle = null; fa il trucco. Ripristinalo su 'shiftKey' se vuoi riattivarlo.

+0

Perfetto! Funziona. Ma ora il quadrato di OpenLayers.Control.Navigation() appare mentre è premuto shift;) Conosce il trucco anche per questo? – strangeoptics

+3

ronzio, qualcosa come 'map.getControlsByClass ('OpenLayers.Control.Navigation') [0] .zoomBox.deactivate()'? – tonio

+0

Confermato, "map.getControlsByClass ('OpenLayers.Control.Navigation') [0] .zoomBox.deactivate()" disabilita la "funzione Shift-Zoom-Box" in OpenLayers 2.13.1 – alfonx

Problemi correlati