16

我正在尝试将我的系统从 Openlayers 2 升级到 Openlayers 3,但我遇到了一个我似乎无法弄清楚的特定问题。

我的应用程序有一个网格和一个地图,当用户单击网格时,我想选择地图上的相关点。

在 Openlayers 2 中,我使用了以下内容:

self.selectControl.select(feature[0]);

我无法在 Openlayers 3 中找到或理解如何做同样的事情。

需要明确的是,我有一个以编程方式找到的功能,我想在地图上(以编程方式)选择该功能!

我似乎在 API 中找不到任何东西,但这可能是由于我对 Openlayers 不熟悉而缺乏理解。

4

3 回答 3

25

为此,您需要执行以下操作:

mySelectControl.getFeatures().clear() -> removes the selected items

mySelectControl.getFeatures().push(featureToSelect) -> selects the applied feature
于 2014-10-17T10:08:33.310 回答
10
var selectInteraction = new ol.interaction.Select(}); 
map.addInteraction(selectInteraction);

function highlightFeature(feat){
   selectInteraction.getFeatures().push(feat);
   selectInteraction.dispatchEvent({
      type: 'select',
      selected: [feat],
      deselected: []
   });
}

在最新的 openlayers 4.5 上像 char 一样工作

于 2017-12-04T23:33:06.473 回答
2
  1. 将选择交互添加到您的地图。

    var selectInteraction = new ol.interaction.Select();
    map.addInteraction(selectInteraction);
    
  2. 将您要选择的任何特征添加到选择交互的特征数组中。

    selectInteractions.getFeatures().push(featureToSelect);
    
于 2016-09-28T16:00:39.543 回答