3
我想在Linux下運行的瀏覽器上使用OpenLayers 3 rotation interaction。這允許通過拖動同時按下Alt和Ctrl來旋轉地圖。這在Windows上工作正常,但不是在Redhat 6u2和其他發行版中,因爲Alt鍵被保留用於X-Windows拖動窗口行爲。在Linux上的OpenLayers 3中拖動旋轉交互
首先,我使用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
})])
});
我想保留移位拖累縮放框,並使用一些其他的鍵/組合,也許「R + Shift鍵」?我試圖自定義條件。看到我的有關實現比ol.events和MapBrowserEvent文檔其他自定義條件的API中JSFiddle
var customCondition = function(mapBrowserEvent) {
return false; // TODO
};
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: customCondition
})])
});
我無法找到任何東西。使用調試器,我找不到在結構或包含一個鍵碼等任何屬性嵌套originalEvent
- 我怎樣才能實現customCondition功能時,拖動過程中按下給定的鍵來檢測?
- 有沒有實現一拖旋轉,在Linux的
一個很好的問題。我會嘗試一些測試並讓你知道。 –