Есть ли способ иметь selectInteraction
в OpenLayers 3, который позволяет выбирать только одну функцию за раз?
OpenLayers 3 Отключить множественный выбор
Ответы (3)
определить взаимодействие выбора следующим образом:
select = new ol.interaction.Select (
toggleCondition: ol.events.condition.never
)
select = new ol.interaction.Select ({ toggleCondition: ol.events.condition.never })
- person Thomas Gratier; 23.01.2017
Не совсем уверен, что хорошо понял.
Если вы перейдете к документу по API для OpenLayers 3.4 и снимите флажок Stable Only
в правом верхнем углу страницы, вы увидите параметр multi
для управления этим. Обычно, согласно документу, то, что вы спрашиваете, уже по умолчанию.
Несколько Логическое значение, определяющее, должно ли поведение по умолчанию выбирать только отдельные объекты или все (перекрывающиеся) объекты в выбранной позиции на карте. По умолчанию установлено значение false, т.е. одиночный выбор
multi
предназначен для выбора нескольких функций одним щелчком мыши. Я хочу отключить возможность удерживать клавишу shift
и выбирать несколько функций.
- person Tyler DeWitt; 04.05.2015
Для 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