我希望防止用户在捏合旋转或缩放时进行平移, 所以我遇到的解决方案是限制用户只用一根手指进行平移。 所以我能够用以下代码做到这一点:
var interactions = map.getInteractions().forEach(function(interaction) {
if (interaction instanceof ol.interaction.DragPan) {
pan = interaction;
}
}, this);
//disable pan with 2 fingers by redefine the handleDownEvent function and call
//to the original handleDownEvent_ function only when the user use 1 finger.
var panDownEvent = pan.handleDownEvent_;
pan.handleDownEvent_ = function (e) {
if(pan.targetPointers.length >1) return false;
panDownEvent.call(pan,e);
return true;
}
问题在于,当我因某种原因使用此代码时,瓷砖延迟加载仅在移动上停止工作。
如果您可以添加api选项以将平底锅限制为仅一根手指或给我其他解决方案,我会优雅的, 或事件更好,如何触发ol延迟加载函数。
感谢。
答案 0 :(得分:0)
使用一些默认交互创建OpenLayers地图。 PinchZoom互动就是其中之一。创建地图时,可以禁用任何默认交互 ,例如要禁用捏缩放交互,您可以执行以下操作:
var map = new ol.Map({
layers: layers,
interactions: ol.interaction.defaults({
pinchZoom: false
}),
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
在list of interactions页面中详细了解相关信息,其中包含有关ol.interaction.defaults
的详细信息,即OpenLayers地图中的默认互动列表。
试试这个,看看是否会让你的另一个问题消失。