OpenLayers 3禁用多选

5

有没有一种在OpenLayers 3中只允许选择一个要素的的方法?

3个回答

14

定义选择交互如下:

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

1
修正答案,应该是 select = new ol.interaction.Select ({ toggleCondition: ol.events.condition.never }) - Thomas Gratier
如果有人正在使用VueLayers,我已经通过在脚本顶部放置import { never } from 'ol/events/condition'并在data块中定义它,然后在<vl-interaction-select>组件中指定:toggle-condition="never"来使其工作。 - wfgeo

2

我不太确定我是否理解得很好。

如果您前往OpenLayers 3.4的API文档,并在页面右上角取消选中仅限稳定版,则会看到一个multi选项来管理此功能。 根据文档,通常您所要求的已经是默认设置了。

Multi是一个布尔值,用于确定默认行为是否应该仅选择单个要素或所有(重叠的)要素。默认值为false,即单选


4
抱歉造成困惑。 "multi"选项是为了一次性选择多个功能。我希望关闭按住“shift”键并选择多个功能的能力。 - Tyler DeWitt

1
对于OpenLayers4,可以通过组合条件轻松实现此操作。
例如,仅在单击而不按下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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接