OpenLayers 3:DragZoom,从[Click + Shift]更改快捷方式到[Click + Ctrl]

时间:2016-07-25 14:16:25

标签: openlayers-3

我试图在他的DragZoom事件上更改ol3的默认行为:我想要此功能,默认情况下在Click + Shift 上配置,而不是使用Click + Ctrl

你知道怎么做吗?

已经咨询过在线文档: http://openlayers.org/en/latest/apidoc/ol.interaction.DragZoom.html

似乎是一个"条件"财产,但无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:2)

"条件" value必须是事件发生时调用的函数。 OpenLayers没有ol.events.condition.ctrlKeyOnly,但你可以定义自己的。{1}}。您需要先禁用默认的DragZoom交互,然后添加自己的:

var interactions = ol.interaction.defaults({
  shiftDragZoom: false
});
interactions.push(new ol.interaction.DragZoom({
  duration: 200,
  condition: function(mapBrowserEvent) {
    var originalEvent = mapBrowserEvent.originalEvent;
    return (
      originalEvent.ctrlKey &&
      !(originalEvent.metaKey || originalEvent.altKey) &&
      !originalEvent.shiftKey);
  }
}));

JSFiddle demo中查看它。