2012-06-05 20 views
5

için shift tuşu veya serbest mod nasıl devre dışı bırakılır DrawFeature Control için shift tuşunu veya freehand modunu devre dışı bırakmak istiyorum. Tipik kod benziyor:OpenLayers: DrawFeature

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

serbest açmak için seçenek yoktur. Ama tamamen devre dışı bırakacak bir şey yok. Vardiyaya her vardiyada freehand modu kullanılır.

Kullanım durumunda, shift tuşunu başka bir davranış için kullanmak istiyorum.

cevap

7

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

drawFeatureControl.handler.freehandToggle = null; hile yok bakın. Yeniden etkinleştirmek istiyorsanız, 'shiftKey''a sıfırlayın.

+0

Mükemmel! İşe yarıyor. Fakat şimdi OpenLayers.Control.Navigation() 'den gelen kare, vardiya basıldığında gösterilir;) Bunun için hile olduğunu biliyor musunuz? – strangeoptics

+3

hum, bir şey gibi map.getControlsByClass ('OpenLayers.Control.Navigation') [0] .zoomBox.deactivate() '? – tonio

+0

Confirmed, "map.getControlsByClass ('OpenLayers.Control.Navigation') [0] .zoomBox.deactivate() Open" OpenLayers 2.13.1'de "Shift-Zoom-Box-özelliğini" devre dışı bırakır. – alfonx

İlgili konular