使用 OpenLayers 放大单个点簇

Zoom-in on a single cluster of points with OpenLayers

我使用 ol.source.Cluster 将许多点渲染为群集。我需要放大单个集群扩展,我正在尝试使用以下代码执行此操作:

map.on('singleclick', event => {
 extent = feature.getGeometry().getExtent();
 options = {
   size: map.getSize(),
   padding: [50, 50, 50, 50],
   duration: 1000
 }
 map.getView().fit(extent, options);
})

当点未聚类时,我点击它,我可以正确地看到它在地图的中心,比例线从 2000 公里移动到 50 毫米;但是当我有一组点时,当我点击该组时,我看到比例线从 2000 公里移动到 50 毫米,我看不到这些点。

我该如何解决?

集群的几何形状是显示集群的单个点。当你放大集群时会扩展到单个特征,所以你应该使用那些的范围:

import (createEmpty, extend} from 'ol/extent'

...

extent = createEmpty();
feature.get('features').forEach(function(feature){
  extend(extent, feature.getGeometry().getExtent());
});
...
map.getView().fit(extent, options);