2012-06-05 49 views
5

Tôi muốn vô hiệu hóa phím shift hoặc chế độ tự do cho Điều khiển DrawFeature. Mã điển hình trông như thế:OpenLayers: Cách vô hiệu hóa phím shift hoặc chế độ tự do cho DrawFeature

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

còn có tùy chọn để chuyển đổi tự do trên. Nhưng không có gì để hoàn toàn tắt nó. Mỗi lần tôi nhấn phím shift, chế độ tự do được sử dụng.

Trong trường hợp sử dụng của tôi, tôi muốn sử dụng phím shift cho một hành vi khác.

Trả lời

7

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

drawFeatureControl.handler.freehandToggle = null; hiện các trick. Đặt lại thành 'shiftKey' nếu bạn muốn bật lại.

+0

Hoàn hảo! Nó hoạt động. Nhưng bây giờ hình vuông từ OpenLayers.Control.Navigation() hiện lên trong khi dịch chuyển được nhấn;) Bạn có biết mẹo này không? – strangeoptics

+3

hum, một cái gì đó như 'map.getControlsByClass ('OpenLayers.Control.Navigation') [0] .zoomBox.deactivate()'? – tonio

+0

Đã xác nhận, "map.getControlsByClass ('OpenLayers.Control.Navigation') [0] .zoomBox.deactivate() ‌" vô hiệu hóa "Shift-Zoom-Box-feature" trong OpenLayers 2.13.1 – alfonx

Các vấn đề liên quan