2014-11-24 68 views
7

我对OpenLayers3中动画功能的可能性感到好奇。OpenLayers3中的功能动画

我很清楚这里 http://openlayers.org/en/v3.0.0/examples/animation.html这里 https://gis.stackexchange.com/questions/26546/openlayers-animation-examples-and-algorithms

提出然而,OL3官方例子不太适合我的需要的例子。

我们假设我有一个图层(例如geojson),它有一个有很多很多时间值的“时间”列。

我想实现类似滑块的功能,可以根据用户的操作添加/删除功能(或更改其样式)。

问题是,有些API可能可以做到这一点,但它们似乎已经过时(代码示例仍然与ol2一起工作)。

对于如何使用OL3构建简单的动画滑块,您有任何建议吗?

编辑:它不一定要是适当的动画。我想到的一种可能性是每当移动滑块时改变图层的样式。仍然没有线索,但如何实现这一点。

此图片说明了什么我的想法:

design for desired functionality

编辑:我目前的做法是有一个滑块,即每次触发代码很是感动。我以某种方式尝试动态改变图层样式,但我仍然没有得到可行的结果。

+0

看起来你的方式是与OpenLayers时间轴。你有一些样本数据吗? – BernieSF 2014-11-26 20:48:28

+0

当然可以。但时间线是否适用于ol3? – stopopol 2014-11-26 20:59:13

回答

4

好的。我自己想出了一个解决方案。这不是一个完整的动画,但它适用于我。

基本上我所做的是我加载一个wfs层到我的地图。 现在,这里是诀窍: 当我这样做时,我只是简单地对各个特征的时间值进行排序,并将每个特征的时间值为1添加到一个图层,每个特征的时间值为2到另一个等等。 这基本上是诀窍。其余的很简单。

下一步是我实现一个范围从1(最低时间值)到任何最高时间值的滑块。每次移动滑块时,都会触发一个事件,查找该滑块设置为哪个时间值,然后添加/删除相应的图层。

所以,如果滑块设置为5.它会将1到5中的每个图层添加到地图并删除其他所有图层。再一次,这不是一个真正的动画,但它对我来说确实有用。

如果有人提出了另一种可能的解决方案,请在此处张贴。我会很感激。

(顺便说一句,这是我的解决方案看起来像在行动:)

enter image description here

编辑:我现在还可以确认它是不可能建立这种做法“适当”的动画。我简单地构建了一个包含多个“setTimeout”的js函数,以便添加一个图层并添加一个触发此函数的播放按钮。这相当于一个将t = 1到tmax的增长可视化的动画。

+0

很酷。我打算建议一个D3js解决方案。所以,你实际上并没有动态地调用wfs,只调用它一次,并基于滑动间隔创建图层,本质上呢? – 2014-12-02 08:38:26

+0

没错。基本上,我在地图初始化时开始创建不同的图层,然后动态添加和删除它们。目前我正在研究一个使用时间延迟来构建合适动画的函数。它几乎是一个播放按钮,从头到尾都贯穿整个过程。 – stopopol 2014-12-02 11:16:51