Fra*_*nke 11 javascript openlayers openlayers-3
我目前正将OpenLayers 2 Mapview升级到OpenLayers 3.我非常喜欢新的OpenLayers客户端,但我想停用在移动设备上旋转地图的功能(用2个手指旋转).
但我找不到任何设置.这是不可能的,还是我只是愚蠢地找到设置?
我正在使用openlayers javascript客户端的当前发行版本(3.0.0).(https://github.com/openlayers/ol3/releases/tag/v3.0.0)
Sim*_*Zyx 27
是的,有一种方法可以停用旋转地图的功能.
您需要自定义ol.Map对象的交互.您可以使用ol.interaction.defaults函数创建具有交互的ol.Collection,也可以创建仅包含所需交互的数组.然后你可以将它传递给ol.Map的构造函数.
使用该ol.interaction.defaults功能(http://openlayers.org/en/master/apidoc/ol.interaction.html#defaults):
var interactions = ol.interaction.defaults({altShiftDragRotate:false, pinchRotate:false});
var map = new ol.Map {
interactions: interactions
};
Run Code Online (Sandbox Code Playgroud)
第一行创建所有默认交互,但能够通过键盘+鼠标旋转并在移动设备上使用手指.
你也许想要删除ol.control.Rotate.(这是右上角的针,用于重置旋转,仅在旋转地图时显示).以同样的方式工作.
通过ol.control.defaults(http://openlayers.org/en/master/apidoc/ol.control.html#defaults)创建没有指南针的控件
var controls = ol.control.defaults({rotate: false});
Run Code Online (Sandbox Code Playgroud)
'完整'代码:
var controls = ol.control.defaults({rotate: false});
var interactions = ol.interaction.defaults({altShiftDragRotate:false, pinchRotate:false});
var map = new ol.Map {
controls: controls,
interactions: interactions
};
Run Code Online (Sandbox Code Playgroud)
在当前版本的OpenLayers 3中,您只需禁用视图对象的enableRotation标志:
view: new ol.View({
...
enableRotation: false
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7427 次 |
| 最近记录: |