1

我目前正在尝试使用 Python 2.7 中的 Folium 在 Leaflet.js 中生成热图。我想我可能会错误地获取 long/lat 语法以使其正确呈现。

csv 文件具有以下布局:名称、经度、纬度

例子:

incident1,-1.44986889,-48.48197937
incident2,-1.37189305,-48.44008189

我编写的代码如下所示:

import folium
import csv
from folium import plugins

heatmap_map = folium.Map(location=[51.67109, -1.28278], zoom_start=2)

with open('/tmp/geolocation.csv','rb') as f:
    reader = csv.reader(f)
    for row in reader:
        data = ([row[1]], [row[2]])
        hm = plugins.HeatMap(data)
        heatmap_map.add_children(hm)
f.close()

heatmap_map.save("/tmp/heatmap.html")

程序运行,保存文件,但是当我在浏览器中加载它时看不到任何热图。我已经验证我可以创建位置标记,以便它按应有的方式加载地图。

恐怕我对 Leaflet.js 了解不够,无法对生成的 html 文件中的代码进行故障排除。

谁能帮我看看数据变量中可能有什么问题,或者可能是一种更好的方法来遍历我的 csv 文件以生成必要的热图?

提前致谢

4

1 回答 1

5

我相信您的问题在于数据点的格式。以下应该有效:

with open('/tmp/geolocation.csv','rb') as f:
    reader = csv.reader(f)
    data = [[row[1], row[2]] for row in reader]
        
hm = plugins.HeatMap(data)
heatmap_map.add_child(hm)
于 2016-04-07T22:06:33.410 回答