繁体   English   中英

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM