我目前正在尝试使用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文件以生成必要的热图?
提前致谢
答案 0 :(得分:4)
我相信你的问题在于数据点的格式化。以下应该有效:
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_children(hm)