如何以编程方式取消选择ol.layer.Vector

时间:2016-12-30 21:15:21

标签: openlayers-3

我在OpenLayers3

中有一个带有标记图层的矢量图层
var iconLayer = new ol.layer.Vector({
        source: iconSource,
        style: styles.iconStyle
 });

点击标记上的事件做一些事情,并在选择时更改标记样式,如

var markerClickInteraction = new ol.interaction.Select({
  condition: ol.events.condition.click,
  layers:[iconLayer],
  style:styles.iconSelectedStyle
});

如何以编程方式取消选择所选要素(而不是通过默认的取消选择行为(例如,点击地图上的其他位置等))。

1 个答案:

答案 0 :(得分:1)

在创建ol.Collection互动时,您可以指定功能选项。如果设置了此选项,则所有选定的功能都将放在此ol.Collection对象中。使用此clear(),您可以操纵所选的功能,例如ol.Collection或其他任何功能。如果清除var featuresColl = new ol.Collection(); var markerClickInteraction = new ol.interaction.Select({ condition: ol.events.condition.click, layers:[iconLayer], style:styles.iconSelectedStyle, features : featuresColl }); 对象,则会自动取消选择所有选定的功能。

document.querySelectorAll('.imageBlockFloatLeftClearLeft > p:last-child').forEach(function(caption) {
    var innerHTML = caption.innerHTML; // 'Fig. 4554. Description blah blah 325355 2 4.'
    var matches = innerHTML.match(/(Fig.\s\d+.)(.+)/);
    var fig = matches[1]; //'Fig. 4554.''
    var descr = matches[2]; // ' Description blah blah 325355 2 4.'
    caption.innerHTML = '<em>' + fig + '</em>' + descr;
});