2012-06-05 4 views
5

DrawFeatureコントロールのシフトキーまたはフリーハンドモードを無効にしたいとします。 A典型的なコードは以下のようになります。OpenLayers: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

ハム、 '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

関連する問題