2016-06-21 57 views
0

我想防止用戶在平移旋轉或縮放時平移,因此我提供的解決方案是限制用戶只用一根手指平移。 所以我能夠做到這一點與下面的代碼:用一個手指平移

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

使用一些默認交互創建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地圖中的默認交互列表。

試試看看是否會讓你的其他問題消失。

+0

嗨,這不是我的問題,問題是當用戶捏他還搖攝,所以當我禁用平底鍋時,通過覆蓋原始對象的handleDownEvent_從一些原因瓷磚延遲加載停止工作只在手機上。不管怎麼說,還是要謝謝你。 –