【问题标题】:OpenLayers 3 Disable Multi-SelectOpenLayers 3 禁用多选
【发布时间】:2015-05-01 15:03:33
【问题描述】:

有没有办法让 OpenLayers 3 中的 selectInteraction 一次只允许选择一个功能?

【问题讨论】:

    标签: openlayers-3


    【解决方案1】:

    如下定义选择交互

    select = new ol.interaction.Select (
        toggleCondition: ol.events.condition.never
    )
    

    【讨论】:

    • 修正答案,应该是select = new ol.interaction.Select ({ toggleCondition: ol.events.condition.never })
    • 如果有人在使用 VueLayers,我可以通过将 import { never } from 'ol/events/condition' 放在脚本顶部,然后在 data 块中将其定义为 never,然后指定 :toggle-condition="never" 来实现这一点在<vl-interaction-select> 组件中。
    【解决方案2】:

    不太确定我理解得很好。

    如果您转到the API doc for OpenLayers 3.4 并取消选中页面右上角的Stable Only,您将看到一个multi 选项来管理它。 通常,根据文档,您所要求的内容已经默认。

    Multi 一个布尔值,用于确定默认行为应仅选择单击地图位置处的单个要素还是所有(重叠)要素。默认为 false 即单选

    【讨论】:

    • 很抱歉给您带来了困惑。 multi 选项用于一键选择多个功能。我想关闭按住shift 键并选择多个功能的功能。
    【解决方案3】:

    对于 OpenLayers4,这可以通过组合条件轻松完成。

    例如一个只在 singleClick 上选择而不是在按下 shiftKey 时选择的条件:

    const select = new Select({
      condition: (mapBrowserEvent) => {
        return singleClick(mapBrowserEvent) && !shiftKeyOnly(mapBrowserEvent)},
      layers: [layer]
    });
    

    在 API 文档中查找更多条件:http://openlayers.org/en/latest/apidoc/module-ol_events_condition.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多