ZoomToExtent OpenLayers 3

ZoomToExtent OpenLayers 3,openlayers,openlayers-3,Openlayers,Openlayers 3,OpenLayers 2有一个非常有用的map.zoomToExtent(extent)特性。OpenLayers 3中有类似的东西吗?我可以通过source.getExtent()获得感兴趣的范围,但我不知道如何将该范围作为“缩放级别”应用。退出函数sfletche链接到: var extent = source.getExtent(); map.getView().fitExtent(extent, map.getSize()); 编辑2013年7月23日 显然,fitExtent已被弃用

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

退出函数sfletche链接到:

var extent = source.getExtent();
map.getView().fitExtent(extent, map.getSize());
编辑2013年7月23日

显然,
fitExtent
已被弃用。应该是
ol.View.fit
,所以有东西链接到这个(untestsd):


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

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

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

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


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


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

您是否尝试过@sfletche,结果证明这是正确的答案。如果你想把你的评论改成一个答案,我会选择它,这样你就可以获得很棒的互联网积分。谢谢@tylerdwitt的推荐。我反应太慢,所以我会给你一些互联网积分视图的fitExtent()在3.4中似乎被弃用,在3.7中被替换。map.getSize()是可选的,它是默认值。您好。我正在尝试使用
this.olmap.getView().fit(ext,size,[0,0,0,0],true,false,0,152000)使缩放平滑并设置动画。它仍然不是平滑的或动画的。有什么想法吗?谢谢(我是OL5)
map.getView().fit(source.getExtent(), map.getSize());