You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:09:03