添加功能之前的 OpenLayers 拟合

OpenLayers fitting before add features

问题: 开放层适合地图,只有在添加特征之后(视觉上),我该如何避免这种情况?

我正在做这个

第 1 步 - 创建特征

var feature = new ol.Feature({...});

第 2 步 - 将它们添加到源

source.addFeature(feature);

第 3 步 - 像这样拟合

view.fit(source.getExtent(), { duration: 1000 });

但视觉上显示的是第 3 步 -> 第 1 步 -> 第 2 步

我想执行第 1 步 -> 第 2 步 -> 第 3 步(按代码顺序)

最好的实现方式是创建没有源的层,在view.fit之后设置层的源:

const layer = new ol.layer.Vector();
const source = new ol.source.Vector();
source.addFeature(feature);
view.fit(source.getExtent());
layer.setSource(source);

您可以尝试在 addfeature

上调整视图
source.on('addfeature', function() {
    view.fit(source.getExtent());
});