【问题标题】:OpenLayers fitting before add features添加功能之前的 OpenLayers 拟合
【发布时间】:2018-05-23 10:08:04
【问题描述】:

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

我在做这个

第 1 步 - 创建功能

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

第 2 步 - 将它们添加到源

source.addFeature(feature);

第 3 步 - 像这样拟合

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

但在视觉上显示步骤 3 -> 步骤 1 -> 步骤 2

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

【问题讨论】:

  • 暂时在.fit 上添加了一个超时,但我想知道一个更好的方法来做到这一点

标签: javascript openlayers


【解决方案1】:

您可以尝试在addfeature 上调整视图

source.on('addfeature', function() {
    view.fit(source.getExtent());
});

【讨论】:

    【解决方案2】:

    实现这一点最好的方法是创建没有源的层,并在view.fit之后设置层的源:

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

    【讨论】:

    • 但那会先fit,我需要的是fit之后
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多