1

現在、Python 2.7 で Folium を使用して Leaflet.js でヒートマップを生成しようとしています。正しくレンダリングするために、長い/緯度の構文を間違って取得している可能性があると思います。

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")

プログラムが実行され、ファイルが保存されますが、ブラウザにロードするとヒートマップが表示されません。位置マーカーを作成できることを確認したので、マップが正常に読み込まれます。

残念ながら、生成された html ファイル内のコードをトラブルシューティングするには、Leaflet.js について十分な知識がありません。

誰かがここで私に手を差し伸べて、データ変数の何が問題なのか、または必要なヒートマップを生成するために 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 に答える