如何使视图适合矢量切片源中的所有要素?

时间:2018-06-13 15:50:05

标签: openlayers

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

通过持续到tileloadend事件确定源已准备就绪。我无法使用map.getView().fit(vectorLayer.getSource().getExtent(), map.getSize());因为getExtent不是函数。但我发现other examples人们能够获得来源的范围。这是矢量图块源的限制吗?如果是这样,有没有办法解决这个限制,可能列出源的所有功能?

以下是我目前的代码:jsbin

2 个答案:

答案 0 :(得分:1)

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范围。

答案 1 :(得分:0)

使用

var extent = vectorTile.getExtent()

并在使用后适合

map.getView().fit(extent, { options });