Openlayers设置altShiftDragRotate禁用旋转仅桌面生效,移动端如何禁用?
你之前配置的altShiftDragRotate: false仅控制桌面端按住Alt+Shift拖拽的旋转交互,移动端双指旋转对应的是pinchRotate配置项,默认处于开启状态,需要额外禁用即可生效。
方案1:仅禁用对应旋转交互
在ol.interaction.defaults配置中追加pinchRotate: false即可,修改后的配置如下:
map = new ol.Map({ layers: [ new ol.layer.Group({ 'title': 'Mapas de base', layers: [grisOSM, mapaOSM] }), /* new ol.layer.Group({ title: 'Capas de información', layers: [ ] }) */ ], target: 'map', controls: ol.control.defaults({ zoom: true, attributionOptions: /** @type {olx.control.AttributionOptions} */ ({ collapsible: false }) }).extend([ scaleLineControl ]), view: vista, interactions: new ol.interaction.defaults({ altShiftDragRotate: false, // 禁用桌面端Alt+Shift拖拽旋转 pinchRotate: false // 禁用移动端双指旋转 }), });
方案2:全局彻底禁用所有旋转能力
如果需要完全禁止地图被旋转(包括代码调用、其他交互触发的所有旋转操作),可以直接在视图实例的配置中添加enableRotation: false,优先级高于交互配置,示例如下:
const vista = new ol.View({ // 你原有的视图配置(中心点、缩放层级、投影等参数) enableRotation: false // 全局禁用所有旋转 })
内容的提问来源于stack exchange,提问作者Ander Canales Medina
相关产品推荐
相关产品推荐

