Ctrlキー(control)を押したままマップをドラッグする方法がありますか?Openlayers3でCtrlキーを押しながら地図をドラッグできますか?
通常は地図をドラッグするだけでマウスの左ボタンを押しながら地図上を移動するだけですが、マウスの左ボタンを押さずにCtrlキーを押しながらマップをドラッグする必要があります。可能ですか?
Ctrlキー(control)を押したままマップをドラッグする方法がありますか?Openlayers3でCtrlキーを押しながら地図をドラッグできますか?
通常は地図をドラッグするだけでマウスの左ボタンを押しながら地図上を移動するだけですが、マウスの左ボタンを押さずにCtrlキーを押しながらマップをドラッグする必要があります。可能ですか?
本当にCtrlキーを押したままパンを許可するしか方法はありません。完全に動作する例は、このフィドルで見つけることができます:
interactions: ol.interaction.defaults({
dragPan: false
})
:それが機能するためにはhttps://jsfiddle.net/mnpq3ufe/
は、上書きする/後でそれを再追加するには、マップのinitに存在dragPanの相互作用を無効にする必要がありますその後、あなたはOpenLayers APIdocsにオーバー向かうことができる、我々は条件とその可能性についての詳細はcondition
を、使用し、このためには、Ctrlキーを押している間だけトリガあなたの新しいカスタマイズされた相互作用を、作成することができます。
map.addInteraction(new ol.interaction.DragPan({
condition: function(event) {
return event.originalEvent.ctrlKey
}
}));
EDIT:
これはまだコンセプトの単なる証拠であるとドラッグを最初に起動するとき、それは間違った場所に収まることから、完全に機能していません。残念ながら私は今現在すべてを把握する時間がありませんが、まだ始めるのにはまだ役立つかもしれません。ここではフィドルは次のとおりです。
map.on('pointermove', function(event){
if(event.originalEvent.ctrlKey){
var pixelCenter = [map.coordinateToPixelTransform_[4],
map.coordinateToPixelTransform_[5]];
var movedPixels = [pixelCenter[0]-event.pixel[0],
pixelCenter[1]-event.pixel[1]];
map.getView().setCenter(map.getCoordinateFromPixel(movedPixels));
}
});
をより良い利用矢印キーそうでない場合どのようにパンをコントロールします:https://jsfiddle.net/mnpq3ufe/5/ 基本的に私は、Ctrlキーを押しながらカーソルを移動するたびにマップを更新したりする
pointermove
イベントを使用していますか? –私はmauseでパンをコントロールしたい。 Ctrlキーを押しながらマウスの左ボタンを押さないで地図をドラッグしたいだけです – TooFast