OpenLayers为getView()。fit()设置动画

mat*_*lin 1 javascript openlayers openlayers-3

我一直在研究openlayers的动画功能,并且可以看到使用以下命令缩放到给定的点和分辨率有多么简单

view.animate({
    center: position,
    zoom: 11
});
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何制作动画

map.getView().fit(extent, map.getSize());
Run Code Online (Sandbox Code Playgroud)

有人可以给我一些指示吗?

提前致谢

Ica*_*rus 5

fit函数确实支持Openlayers 3中的动画。第三个参数是一个对象,可以在其中设置不同的选项(持续时间,缓动...),您可以轻松地做到这一点:

map.getView().fit(extent, map.getSize(), { duration: 1000 });
Run Code Online (Sandbox Code Playgroud)

您可以查看Openlayers 3 API,以了解有关options参数的更多详细信息。

我还创建了一个jsFiddle示例,您可以在其中看到它的工作原理

小心!OpenLayers v4.0.1在这里:

在最近发布的Openlayers版本中,与该方法有关的某些事情已更改,因此,如果您阅读最新的Openlayers API中的fit函数文档,您会发现现在只允许2个参数,因为大小不需要作为参数传递(但是,可以在options参数中分配)。因此,适用于Openlayers v4.0.1的示例如下所示:

map.getView().fit(extent, { duration: 1000 });
Run Code Online (Sandbox Code Playgroud)

请务必牢记这些更改,因为在您使用官方API时可能会引起混淆。