0

我目前正在尝试使用 Python 和 Folium 在 Leaflet.js 上生成热图,我得到了一些奇怪的结果。

我从 csv 文件中读取经度和纬度,然后尝试使用 Folium 生成“热图条目”。

如果我在执行期间打印变量,我会看到以下内容(有点伪代码):

print row[0] 
-1.44986889

但是,当我这样称呼它时:

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

print '[*] Reading in and parsing the CSV file.'
with open('geoloc.csv','rb') as f:
    reader = csv.reader(f)

    for row in reader:
        heatmap_map.add_children(plugins.HeatMap([row[0]]))

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

写入 heatmap.html 文件的内容如下所示:

 var heat_map_b207be06b0c945a39fc48ed43ff5493b = L.heatLayer(
    [['-', '1', '.', '4', '4', '9', '8', '6', '8', '8', '9']],

如您所见,字符串被分解,每个字符都用''和,分隔。

我完全不知道是什么原因造成的,也不知道如何解决它。有什么想法吗?

4

1 回答 1

0

我仍然不知道为什么它会拆分字符串 - 所以如果有人可以回答那部分,请随时这样做 - 但我设法解决了这个问题。

我改变了读取 csv 文件的方式,将其读入列表,然后在 Folium 函数中进行迭代。

代码现在看起来像这样:

print '[*] Reading in and parsing the CSV file.'
with open('geoloc.csv','rb') as f:

    reader = csv.reader(f)
    geolist = list(reader)

f.close()

heatmap_map.add_children(plugins.HeatMap([[t[0], t[1]] for t in geolist]))

print '[*] Creating and saving heatmap.\n'
heatmap_map.save("/tmp/heatmap.html")

这似乎成功了。

于 2016-03-09T15:37:05.937 回答