【发布时间】:2015-05-01 15:03:33
【问题描述】:
有没有办法让 OpenLayers 3 中的 selectInteraction 一次只允许选择一个功能?
【问题讨论】:
标签: openlayers-3
有没有办法让 OpenLayers 3 中的 selectInteraction 一次只允许选择一个功能?
【问题讨论】:
标签: openlayers-3
如下定义选择交互:
select = new ol.interaction.Select (
toggleCondition: ol.events.condition.never
)
【讨论】:
select = new ol.interaction.Select ({ toggleCondition: ol.events.condition.never })
import { never } from 'ol/events/condition' 放在脚本顶部,然后在 data 块中将其定义为 never,然后指定 :toggle-condition="never" 来实现这一点在<vl-interaction-select> 组件中。
不太确定我理解得很好。
如果您转到the API doc for OpenLayers 3.4 并取消选中页面右上角的Stable Only,您将看到一个multi 选项来管理它。
通常,根据文档,您所要求的内容已经默认。
Multi 一个布尔值,用于确定默认行为应仅选择单击地图位置处的单个要素还是所有(重叠)要素。默认为 false 即单选
【讨论】:
multi 选项用于一键选择多个功能。我想关闭按住shift 键并选择多个功能的功能。
对于 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
【讨论】: