首页 > 解决方案 > 使用 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 毫米,我看不到这些点。

我该如何解决?

标签: openlayers

解决方案


簇的几何形状是显示簇的单个点。当您放大集群时,将扩展到单个要素,因此您应该使用这些范围:

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

...

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

推荐阅读