如何在Openlayers 3中禁用DragPan交互(当已定义map时)?
另外,为什么我无法使用mousemove事件?
我这样做了:map.on('mousemove',function(e){ ...});它不起作用.
Ale*_*ubé 26
要禁用交互,您需要将其从地图中删除.如果您没有对交互的引用,可以使用getInteractionsmap方法找到它:
var dragPan;
map.getInteractions().forEach(function(interaction) {
if (interaction instanceof ol.interaction.DragPan) {
dragPan = interaction;
}
}, this);
if (dragPan) {
map.removeInteraction(dragPan);
}
Run Code Online (Sandbox Code Playgroud)
对于鼠标移动事件,要使用的正确事件是" pointermove ",请参阅此处使用的示例:http://openlayers.org/en/v3.3.0/examples/icon.html
知道您可以配置您想要创建并在默认情况下添加到地图的交互.例如,如果您想在没有dragPan交互的情况下创建地图,则可以这样做:
var map = new ol.Map({
layers: layers,
interactions: ol.interaction.defaults({
dragPan: false
}),
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
Run Code Online (Sandbox Code Playgroud)
请参阅此处以获取所有可能选项的列表ol.interaction.defaults.
现在在“开放层3”中有一个setActive方法:
map.getInteractions().forEach(function(interaction) {
if (interaction instanceof ol.interaction.DragPan) {
interaction.setActive(false);
}
}, this);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8928 次 |
| 最近记录: |