使用 python 在 Deck.gl 中制作 TripsLayer 动画

edo*_*las 2 python gis deck.gl

我在 Deck.gl 网站(这个)中看到了 TripsLayer 示例,它看起来真的很酷。我想完成同样的任务,但使用 pydeck,deck.gl 的 python 绑定。pydeck 网页中的示例(这个)没有动画,我不知道应该如何做才能获得平滑的动画,如 javascript 示例所示。我已经尝试了多种方法(传递列表、函数、具有变化值的变量等),但它们都不起作用,而且我找不到 pydeck 的任何示例。

谢谢!

小智 5

确实,这个例子应该包括更多的旅行。下面介绍如何在jupyter笔记本中实现多次行程的动画。

import time
import pandas as pd
import pydeck as pdk

data = '[{"agent_id":0,"path":[[-0.63968,50.83091,0.0],[-0.78175,50.83205,0.0]],"time":[65100,65520],"color":[228,87,86]},{"agent_id":1,"path":[[-0.63968,50.83091,0.0],[-0.78175,50.83205,0.0]],"time":[65940,66420],"color":[178,121,162]},{"agent_id":2,"path":[[-0.63968,50.83091,0.0],[-0.37617,50.8185,0.0]],"time":[65340,66360],"color":[157,117,93]},{"agent_id":3,"path":[[-0.63968,50.83091,0.0],[-0.78175,50.83205,0.0]],"time":[65940,66420],"color":[238,202,59]},{"agent_id":4,"path":[[-0.63968,50.83091,0.0],[-0.78175,50.83205,0.0]],"time":[67740,68160],"color":[157,117,93]}]'

df = pd.read_json(data)
view = {"bearing": 0, "latitude": 50.85, "longitude": -0.16, "pitch": 0, "zoom": 9}

time_min = 65_000
time_max = 80_000

layer = pdk.Layer(
    "TripsLayer",
    df,
    get_path='path',
    get_timestamps='time',
    get_color='color',
    opacity=0.8,
    width_min_pixels=3,
    rounded=True,
    trail_length=900,
    current_time=0
)

# Render
r = pdk.Deck(layers=[layer], initial_view_state=view, map_style='dark_no_labels')

r.show()

# Animate
for ct in range(time_min, time_max, 100):
    layer.current_time = ct
    r.update()
    time.sleep(0.1)
Run Code Online (Sandbox Code Playgroud)

  • 我只是在我的 pydeck 中使用了相同的代码,它只显示了底图 (3认同)