Google最近重新设计了那里的地图移动行为。现在,在移动设备上,您可以用两个手指移动地图。(请参阅手机上的地图简单示例,而不是任何浏览器模拟器!)。
我想在openlayer中实现相同的功能。检测移动设备(例如使用WURFL),禁用dragPan并不是问题,但是我该如何编写自己的ol.interaction.Interaction两只手指才能工作?
我调查了doku,没有找到任何示例,从哪里开始。
拖动交互通常带有“条件”选项。您提供一个函数,该函数采用一个参数 ( ol.MapBrowserEvent ) 并返回一个布尔值,指示是否应应用交互。
ol.MapBrowserEvent包装了原始浏览器事件,这意味着您只需查找其上的 Touches 数组并检查它的长度是否为 2。
<script>
var map = new ol.Map({
interactions: [
new ol.interaction.DragPan({
// This comment marks the beginning of the code of interest.
condition: function(olBrowserEvent) {
if (olBrowserEvent.originalEvent.touches)
return olBrowserEvent.originalEvent.touches.length === 2;
return false;
}
// This comment marks the end.
})
],
layers: [
// Your layers.
],
target: 'map',
view: new ol.View({
center: [-33519607, 5616436],
rotation: -Math.PI / 8,
zoom: 8
})
});
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1009 次 |
| 最近记录: |