使用Python打印带有标记和文本详细信息的地图

时间:2017-10-04 08:27:48

标签: python twitter leaflet tweepy folium

我目前正在开展一个项目,其目的是从Hashtag中提取推文(启用地理位置)并打印地图(使用Folium)。在地图内部,我应该根据用户位置设置标记,当我点击标记时,我应该有推文的文本。但目前我只有地图和标记。

这是我的代码:

import pandas as pd
import folium, ast

locations = pd.read_csv('tweets.csv', usecols=[3]).dropna()

l_locations = []

for loc in locations.values:
    l_locations.append(ast.literal_eval(loc[0])['coordinates'])

print_tweet_map = folium.Map(location=[48.864716, 2.349014], zoom_start=8, tiles='Mapbox Bright')

for geo in l_locations:
    folium.Marker(location=geo).add_to(print_tweet_map)

print_tweet_map.save('index.html')

你们可以帮我打印推文的标记和文字细节吗? 提前谢谢。

PS:我目前: Europe map

2 个答案:

答案 0 :(得分:0)

csv文件的某些行:



created_at,user,text,geo
2017-09-30 15:28:56,yanceustie,"RT @ChelseaFC: .@AlvaroMorata and @marcosalonso03 have been checking out the pitch ahead of kick-off..., null
2017-09-30 15:48:18,trendinaliaVN,#CHEMCI just started trending with 17632 tweets. More trends at ... #trndnl,"{'type': 'Point', 'coordinates': [21.0285, 105.8048]}"




答案 1 :(得分:0)

仔细检查read_csv,然后使用它来检索推文文本。阅读folium文档,popup似乎是放置每条推文文本最相关的地方。

同样,你会重复同样的事情2次。您可以将这些减少到1个迭代循环中,在地图上放置一条推文。 (想象一下,地图是您要附加的空列表)。无需过度顺序。

import pandas as pd
import folium, ast

frame = pd.read_csv('tweets.csv', usecols=[2, 3], names=['text', 'location'], header=None).dropna()

print_tweet_map = folium.Map(location=[48.864716, 2.349014], zoom_start=8, tiles='Mapbox Bright')

for index, item in frame.iterrows():
    loc = item.get('location')
    text = item.get('text')
    geo = ast.literal_eval(loc[0])['coordinates']

    folium.Marker(location=geo, popup=text) \ 
                .add_to(print_tweet_map)

print_tweet_map.save('index.html')

这应该可以工作,或者非常接近工作,但我没有合适的计算机进行测试。

相关问题