21

OpenLayers 2 有一个非常有用map.zoomToExtent(extent)的特性。OpenLayers 3中有类似的东西吗?我可以通过 获得感兴趣的范围source.getExtent(),但我不知道如何将该范围应用为“缩放级别”。

4

3 回答 3

50

Going off the function sfletche linked to:

var extent = source.getExtent();
map.getView().fitExtent(extent, map.getSize());

EDIT July 23, 2013

Apparently fitExtent is deprecated. Should be ol.View.fit, so something linke this (untestesd):

var extent = source.getExtent();
map.getView().fit(extent, map.getSize()); 
于 2014-05-16T20:43:45.260 回答
4

对于 OpenLayers 4.x,这仍​​然是一个有效的解决方案:

map.getView().fit(source.getExtent(), map.getSize()); 

如果地图上没有点,请确保设置可选的第二个参数以防止控制台错误。

于 2018-02-02T14:54:32.957 回答
1

在 OpenLayers 4.x 中,我发现以下方法很有用:

map.getView().setCenter([x, y]); map.getView().setZoom(z);

其中x, y,z是您要缩放到的坐标。

于 2018-10-12T08:46:14.023 回答