OpenLayers - 在特定缩放级别单击标记缩放

OpenLayers - On click marker zoom at certain zoom level

我想在标记上创建单击事件,该标记在单击时缩放到特定级别。当前代码加载标记并单击缩放至标记的最大缩放级别。我想在代码中添加一个特定的缩放级别,所以当点击事件发生在标记上时,它应该在该缩放级别设置视图。我在地图上有缩放级别 16 及以上的光栅图块,所以当我点击标记时它应该缩放到栅格图块并从那里隐藏标记。

    var marker = new ol.layer.Vector({
      source: new ol.source.Vector({
          format: new ol.format.GeoJSON(),
          url: "data.js"  
      }),
      style: new ol.style.Style({
        image: new ol.style.Icon({
                anchor: [0.5, 0.5],
                anchorXUnits: 'fraction',
                anchorYUnits: 'pixels',
                scale:0.03,
                src: "img.png"
              })
          })  
    });
    map.addLayer(marker);
    map.on("singleclick", (event) => {        
        const feature = map.forEachFeatureAtPixel(event.pixel, (feature) => {
          return feature;
        });
        if (feature instanceof ol.Feature) {
              map.getView().fit(feature.getGeometry());       
         }
      });

而不是使用 fit 设置视图的中心和缩放

map.getView().setCenter(ol.extent.getCenter(feature.getGeometry().getExtent()));
map.getView().setZoom(16);

您可以通过给它一个空样式来“隐藏”一个特征

feature.setStyle(null);