1

所以这是我的目标:

使用 google maps api 生成一堆地图并在我的计算机上实时运行它们,类似于 GIF 的样子。

我有一个dataframe看起来像这样的熊猫:

   diffSecs   latitude  longitude  altitude                 time code name
0     1.614  42.386391 -71.013544        50  2011-12-16 08:09:07     PEONY
1     1.115  42.386391 -71.013544        50  2011-12-16 08:09:08     PEONY
2     0.952  42.386391 -71.013544        50  2011-12-16 08:09:09     PEONY
3     0.923  42.386391 -71.013544        50  2011-12-16 08:09:10     PEONY
4     1.307  42.386391 -71.013544        50  2011-12-16 08:09:11     PEONY

因此,我有一个贯穿经纬度的函数,并创建一个由数百个 url 组成的列表,这些 url 是地图的图像,并在人员位置上有一个点。

这是功能:

def url_maker(df):
    urls = []
    df = df.reset_index(drop=True)
    name = df['code name'][0]
    if name == "APPLE" or name == "DAFODIL" or name == "LILLY" or name == "LILY" or name == "ORANGE" or name == "ROSE" or name == "SUNFLOWER" or name == "SWEETPEA":
        label = "C"
        color = 'blue'
    else:
        label = "P"
        color = 'red'
    lats,lons = df.latitude, df.longitude
    center = home_finder(df)
    for i in range(len(df)-1):
        x,y = str(lats[i]),str(lons[i])
        marker = '&markers=color:' + color + '%7Clabel:' + label + '%7C' + x + ',' + y
        url = 'http://maps.googleapis.com/maps/api/staticmap?size=600x300&maptype=roadmap&zoom=7&center=' + center + marker + '&sensor=true'
        urls.append(url)
    return urls

这将返回一个 url 列表,这些 url 是地图上的人员位置。所以你知道,该home_finder函数在数据框中获取 gps 坐标,并估算出该人居住的位置,以便我可以观察他们离家有多远。

所以这是我的问题:

既然我有一个我需要的所有图像 url 的列表,我怎样才能用它制作一部电影,以便我可以实时观看点移动?有没有可以为我做到这一点的模块?我已经坚持了一个多星期!

笔记:

我曾想过在 Django 中使用循环来实时更新标签,但我以前从未使用过 Django,所以我真的不知道这是否可行,以及我是否可以这样做。如果我可以在 Django 中做到这一点,我怎么能做到?但是,如果可以在我自己的计算机上执行此操作并将其保存在 GIF 或 MOV 文件中,那会好 100 倍!

4

1 回答 1

2

对于每个 url,使用urllibBeautifulSoup下载该页面上的图像(请参阅此 SO 帖子)。

使用该subprocess模块运行ImageMagick脚本,该脚本将创建您的 MOV GIF 文件:

convert -quality 100 *.png maps.mov

或者:

convert -set delay 3 -loop 0 -scale 50% *.png maps.gif
于 2013-05-28T17:11:31.213 回答