如何在Folium中为每条路线添加tooltip?公交路线命名显示异常怎么解决
问题原因
你将所有站点名称组成的列表直接传给了folium.PolyLine的tooltip参数,而PolyLine的tooltip是针对整条折线的全局提示属性,会直接将传入的列表序列化后展示,因此会出现['xxx','yyyy','zzzz']的整串列表格式。
解决方案
分两种常见需求场景对应处理:
场景1:整条线路悬浮时显示统一的线路名称
如果你的Excel表中同一条线路的所有站点对应的第三列(代码中取的df.iloc[i,2])存储的是相同的线路名,直接取列表的第一个元素作为tooltip即可:
# 其他原有代码不变,仅修改PolyLine的tooltip参数 folium.PolyLine(points, color="red", weight=2.5, opacity=1, tooltip=names[0]).add_to(my_map)
注意:如果需要绘制多条线路,要先按线路名称对Excel数据做分组,每组单独生成
points对象和对应的PolyLine,不要把所有线路的站点合并到同一个points中处理。
场景2:悬浮在对应站点位置时显示单个站点的名称
PolyLine本身不支持分段展示不同的tooltip,需要额外给每个站点添加标记元素绑定单独的提示:
# 保留原有绘制线路的代码 folium.PolyLine(points, color="red", weight=2.5, opacity=1).add_to(my_map) # 新增遍历添加站点标记的代码 for lat, lon, name in zip(points['Latitude'], points['Longitude'], names): folium.CircleMarker( location=[lat, lon], radius=3, color="red", fill=True, fill_color="red", tooltip=name ).add_to(my_map)
内容的提问来源于stack exchange,提问作者Sami Trabelsi
相关产品推荐
相关产品推荐

