Select 开放层:持久选择交互功能存在问题

Select 开放层:持久选择交互功能存在问题,select,cluster-computing,zooming,openlayers,double-click,Select,Cluster Computing,Zooming,Openlayers,Double Click,在我的应用程序中,我必须开发一个系统,允许用户通过双击放大集群。 一切都正常,但问题是双击在地图上添加一个特征(一个点),它是持久的(如果我选择的不是集群而是单个元素,即使我已经指定features.length>=2,它也会替换我选择的功能,因此只有当用户双击集群时,双击才有效,但情况并非如此)。 我希望选择交互只执行集群的缩放,而不是事件在地图上添加功能。我如何解决这个问题 var selectDoubleClick = new ol.interaction.Select({ mult

在我的应用程序中,我必须开发一个系统,允许用户通过双击放大集群。 一切都正常,但问题是双击在地图上添加一个特征(一个点),它是持久的(如果我选择的不是集群而是单个元素,即使我已经指定features.length>=2,它也会替换我选择的功能,因此只有当用户双击集群时,双击才有效,但情况并非如此)。 我希望选择交互只执行集群的缩放,而不是事件在地图上添加功能。我如何解决这个问题

var selectDoubleClick = new ol.interaction.Select({
   multi: true,
   condition: ol.events.condition.doubleClick,
   layer: this.clusterLayer,
   style: this.selectedClusterStyle
});

selectDoubleClick.on('select',function(event) {
   var eventFeature = event.selected[0];
   var features = eventFeature.get('features');
   if (features.length>=2){
      var extent = ol.extent.createEmpty();
      features.forEach(function(feature) {
               ol.extent.extend(extent, feature.getGeometry().getExtent());
      });
      this.getMap().getView().fit(extent, {padding: [150, 150, 150, 150]})
   }
});
this.map.addInteraction(selectDoubleClick);

我还尝试设置selectDoubleClick
样式:null
,但这并不能解决我的问题

根据下面的讨论,我最终找到了一个解决方案:

特别是:

ol.interaction.Select选定功能将添加到内部 非托管层

这就是为什么即使基础要素 层不是

在使用缩放时,可以取消选择选定的要素 选择_interaction.getFeatures().clear()(就像单击鼠标一样)

所以我编辑我的代码如下:

selectDoubleClick.on('select',function(event) {
     var eventFeature = event.selected[0];
     var features = eventFeature.get('features');
     if (features.length>1){
           var extent = ol.extent.createEmpty();
           features.forEach(function(feature) {
                  ol.extent.extend(extent, feature.getGeometry().getExtent());
           });
           this.getMap().getView().fit(extent, {padding: [150, 150, 150, 150]})
      }else{
            selectDoubleClick.getFeatures().clear()
      }
 });
 this.map.addInteraction(selectDoubleClick);