首页 > 解决方案 > 如何使视图适合矢量切片源中的所有特征?

问题描述

使用 openlayers 版本 4,我如何使视图适合矢量切片源中的所有功能?

在我通过监听事件确定源准备好之后tileloadend。我不能使用map.getView().fit(vectorLayer.getSource().getExtent(), map.getSize());,因为getExtent它不是一个函数。但我发现了其他例子,人们能够获得来源的范围。这是矢量图块来源的限制吗?如果是这样,有没有办法解决这个限制,也许列出源的所有功能?

这是我到目前为止的代码:jsbin

标签: openlayers

解决方案


getExtent方法适用于层而不是源。并且没有getFeatures可用于矢量图块的方法。

vectorLayer.getSource().once('tileloadend', function (evt) {
    if (vectorLayer.getSource().getState() === 'ready') {
        map.getView().fit(vectorLayer.getExtent(), map.getSize());
        console.info(map.getView().getCenter());
        console.info(map.getView().getZoom());
    }
})

我已经修改了您的代码并检查了,该图层仍然返回undefined范围。


推荐阅读