2012-06-05 10 views
5

के लिए शिफ्ट कुंजी या फ्रीहैंड मोड को अक्षम कैसे करें I DrawFeature Control के लिए Shift कुंजी या फ्रीहैंड मोड को अक्षम करना चाहते हैं। एक ठेठ कोड कि तरह लग रहा है:ओपनलेयर: DrawFeature

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

मुक्तहस्त पर स्विच करने का विकल्प नहीं है। लेकिन इसे पूरी तरह से निष्क्रिय करने के लिए कुछ भी नहीं है। प्रत्येक बार जब मैं शिफ्ट हिट करता हूं तो फ्रीहैंड मोड का उपयोग किया जाता है।

मेरे उपयोग के मामले में मैं किसी अन्य व्यवहार के लिए शिफ्ट कुंजी का उपयोग करना चाहता हूं।

उत्तर

7

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

drawFeatureControl.handler.freehandToggle = null; काम कर देता है। यदि आप इसे पुनः सक्षम करना चाहते हैं तो इसे 'shiftKey' पर रीसेट करें।

+0

बिल्कुल सही! यह काम करता हैं। लेकिन अब OpenLayers.Control.Navigation() से वर्ग तब दिखाई देता है जब शिफ्ट दबाया जाता है;) क्या आप इसके लिए चाल जानते हैं? – strangeoptics

+3

hum, 'map.getControlsByClass ('OpenLayers.Control.Navigation') जैसे कुछ [0] .zoomBox.deactivate()'? – tonio

+0

पुष्टि की, "map.getControlsByClass ('OpenLayers.Control.Navigation') [0] .zoomBox.deactivate()" OpenLayers 2.13.1 में "Shift-Zoom-Box-Feature" को अक्षम करता है – alfonx

संबंधित मुद्दे