使用 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);
我使用 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);