Javascript Linux上OpenLayers 3中的拖动旋转交互
我想在Linux下运行的浏览器上使用OpenLayers 3。这允许在按住Alt和Ctrl键的同时通过拖动来旋转贴图。这在Windows上运行良好,但在Redhat 6u2和其他可能的发行版中不行,因为Alt键是为X-Windows拖动窗口行为保留的 首先,我使用Javascript Linux上OpenLayers 3中的拖动旋转交互,javascript,openlayers-3,Javascript,Openlayers 3,我想在Linux下运行的浏览器上使用OpenLayers 3。这允许在按住Alt和Ctrl键的同时通过拖动来旋转贴图。这在Windows上运行良好,但在Redhat 6u2和其他可能的发行版中不行,因为Alt键是为X-Windows拖动窗口行为保留的 首先,我使用ol.events.condition.shiftKeyOnly自定义了DragRotate,它工作正常,但与缩放框功能冲突,即旋转时绘制蓝色缩放框 var map = new ol.Map({ layers: [ ne
ol.events.condition.shiftKeyOnly
自定义了DragRotate,它工作正常,但与缩放框功能冲突,即旋转时绘制蓝色缩放框
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})],
target: 'map',
view: new ol.View({
center: [-25860000, 4130000],
zoom: 10
}),
interactions: ol.interaction.defaults().extend([new ol.interaction.DragRotate({
condition: ol.events.condition.shiftKeyOnly
})])
});
我想保留缩放框的shift拖动,并使用其他一些键/组合,可能是“R+shift”?我已经试着自定义条件。看我的
我在API中找不到任何关于实现自定义条件的内容,除了文件和文档。使用调试器,我在结构或嵌套的OriginaleEvent中找不到任何包含键码等的属性
- 如何实现customCondition功能来检测在拖动过程中何时按下给定键
- 有没有其他方法可以在Linux中实现拖动旋转
- 这里有一个自定义条件-Ctrl+Shift:
ol.events.condition.custom = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.originalEvent;
return (browserEvent.ctrlKey && browserEvent.shiftKey);
};
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})],
target: 'map',
view: new ol.View({
center: [-25860000, 4130000],
zoom: 10
}),
interactions: ol.interaction.defaults().extend([new ol.interaction.DragRotate({
condition: ol.events.condition.custom
})])
});
好问题。我会试试看,然后告诉你。
ol.events.condition.custom = function(mapBrowserEvent) {
var browserEvent = mapBrowserEvent.originalEvent;
return (browserEvent.ctrlKey && browserEvent.shiftKey);
};
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})],
target: 'map',
view: new ol.View({
center: [-25860000, 4130000],
zoom: 10
}),
interactions: ol.interaction.defaults().extend([new ol.interaction.DragRotate({
condition: ol.events.condition.custom
})])
});