我试图在他的DragZoom事件上更改ol3的默认行为:我想要此功能,默认情况下在Click + Shift 上配置,而不是使用Click + Ctrl
你知道怎么做吗?
已经咨询过在线文档: http://openlayers.org/en/latest/apidoc/ol.interaction.DragZoom.html
似乎是一个"条件"财产,但无法弄清楚如何做到这一点。
答案 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中查看它。