admin管理员组文章数量:1432602
I have created a map using OpenLayers3. I can succesfully zoom to a layer on the map using the following code:
map.getView().fit(extent, map.getSize());
However I woulld like something similiar in an animated way.
I know about the following animations:
ol.animation.pan
ol.animation.zoom
By using these I can't zoom to a layer, using ol.animation.pan I can only pan to a point (and not to a boundingbox) and using ol.animation.zoom I can zoom to a resolution (and not to a boundingbox). So what I am looking for is an animated .fit so I can zoom animated to an extent.
Any suggestions on how I can achieve that would be appreciated :)
I have created a map using OpenLayers3. I can succesfully zoom to a layer on the map using the following code:
map.getView().fit(extent, map.getSize());
However I woulld like something similiar in an animated way.
I know about the following animations:
ol.animation.pan
ol.animation.zoom
By using these I can't zoom to a layer, using ol.animation.pan I can only pan to a point (and not to a boundingbox) and using ol.animation.zoom I can zoom to a resolution (and not to a boundingbox). So what I am looking for is an animated .fit so I can zoom animated to an extent.
Any suggestions on how I can achieve that would be appreciated :)
Share Improve this question asked May 23, 2016 at 9:37 TitsjmenTitsjmen 8098 silver badges16 bronze badges 1- I guess I've already tried this, but I didn't find a way to achieve this. Maybe a Pull Request to the library is need. – Jonatas Walker Commented May 23, 2016 at 14:53
2 Answers
Reset to default 8Starting with v3.20.0, OpenLayers has a new duration
option on ol.View#fit()
. To get a 1 second animation to the fit extent, set it to 1000:
// OpenLayers v3.20.x
view.fit(extent, size, {duration: 1000});
Also note that starting with v3.21.0, the API for ol.View#fit()
is simplified - it no longer requires a size to be set (unless there is more than one map on the page):
// OpenLayers >= v3.21.0
view.fit(extent, {duration: 1000});
i just solved this way
var view = map.getView()
var pan = ol.animation.pan({ source: view.getCenter() });
var zoom = ol.animation.zoom({ resolution: view.getResolution() });
map.beforeRender(pan, zoom);
view.fit(extent, map.getSize())
本文标签: javascriptOpenLayers3Animated fit to a specific extentStack Overflow
版权声明:本文标题:javascript - OpenLayers3 - Animated .fit to a specific extent - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745605485a2665814.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论