2012-06-05 33 views
5

Me gustaría desactivar la tecla Mayús o el modo a mano alzada para el control DrawFeature. Un código típico que se parece a:OpenLayers: Cómo deshabilitar la tecla Mayús o el modo a mano alzada para DrawFeature

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

Existe la opción de cambiar a mano alzada en. Pero no hay nada para desactivarlo por completo. Cada vez que presiono shift se usa el modo a mano alzada.

En mi caso de uso, me gustaría utilizar la tecla Mayús para otro comportamiento.

Respuesta

7

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

drawFeatureControl.handler.freehandToggle = null; hace el truco. Restablézcalo al 'shiftKey' si desea volver a habilitarlo.

+0

¡Perfecto! Funciona. Pero ahora aparece el cuadrado de OpenLayers.Control.Navigation() mientras se presiona shift;) ¿Conoces el truco para esto también? – strangeoptics

+3

hum, algo así como 'map.getControlsByClass ('OpenLayers.Control.Navigation') [0] .zoomBox.deactivate()'? – tonio

+0

Confirmado, "map.getControlsByClass ('OpenLayers.Control.Navigation') [0] .zoomBox.deactivate()" deshabilita la "característica Shift-Zoom-Box-feature" en OpenLayers 2.13.1 – alfonx

Cuestiones relacionadas