2014-11-24 64 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