Shiftキーを押しながらmouseWheelZoomで地図を拡大するだけです。 しかし、ol.interaction.MouseWheelZoomオプションには条件が含まれていません。ただし、handleEvent()メソッドがあります。MouseWheelZoomをopenlayers3でShiftキーを押しながらのみ適用する方法
シフトキーだけを押すと、ol.events.condition.shiftKeyOnly(mapBrowserEvent)がtrueを返すことがわかります。
handleEvent()メソッドをどのようにオーバーライドできますか?
使用してtypescriptです:
export class ShiftMouseWheelInteraction extends ol.interaction.MouseWheelZoom {
public handleEvent = function(evt){
if (ol.events.condition.shiftKeyOnly(evt) === true) {
return ol.interaction.MouseWheelZoom.handleEvent(evt);
}
else {
return false;
}
}
}
は、その後、私はマップにこの相互作用を追加し、デフォルトの相互作用としてMouseWheelZoomを有効に追加します。
this.map = new ol.Map({
layers: layers,
interactions: ol.interaction.defaults({
mouseWheelZoom: true
})
});
this.map.addInteraction(shiftMouseWheelInteraction);
地図をズームしていませんか?
ol.interaction.MouseWheelZoomはol.interaction
塩基相互作用コンストラクタはのhandleEventオプションを持って延びるが、サブクラスは、塩基相互作用には、このパラメータを渡すことはできません。
ol.interaction.MouseWheelZoom = function(opt_options) {
ol.interaction.Interaction.call(this, {
handleEvent: ol.interaction.MouseWheelZoom.handleEvent
});