如何使用fontawesome和folium.icon?

8

我希望使用自定义的fontawesome图标,谢谢。

我想使用fontawesome图标来改变folium.icon中的图标。

例如,我想要更改这个图标:

    import folium

    m = folium.Map(location=(25.0431, 121.539723), zoom_start=12,tiles='Cartodb Positron')

    folium.Marker(
        location=[25.0431, 121.539723], 
        icon=folium.Icon(color="red",icon="fa-truck", prefix='fa')).add_to(m)

    m

以下是来自fontawesome的汉堡图标:

汉堡图标,如下所示:

    folium.Marker(
        location=[25.0431, 121.539723], 
        icon=folium.Icon(color="red",icon="fa-hamburger", prefix='fa')).add_to(m)

但是对我不起作用!

非常感谢!!!


“但对我来说不起作用”:这是什么意思?错误信息?没有图标显示?还是旧的? - tobltobs
没有图标显示,只有一个红色标记。 - Doeiqw Dwe
3个回答

14

修正

我之前的回答忽略了Folium和Leaflet存在的这个问题:在Fontawesome v5中添加的图标目前无法在Folium或其基础上的Leaflet中呈现,你实现的如 "truck" 这样的Fontawesome v4字体可以完美工作。所以你需要等待支持 "hamburger" 或者在Fontawesome v4列表中找到另一个可用的标记。

请记住,如果你使用不了Fontawesome,你总是可以尝试使用Bootstrap图标作为替代方案。


下面提供的信息仅适用于Fontawesome v4.x 图标

欢迎!通过轻微修改你的图标构造器,你应该能够呈现出此图标。在正常用法中,icon参数将指向来自Bootstrap的标准glyphicons。如果要使用Fontawesome图标,请输入图标名称而不带前缀(例如仅使用 "hamburger" 而不是在前面加上 "fa-"),然后添加Fontawesome的 prefix 关键字参数,即 fa

所以在你的情况下,它应该像这样:

folium.Marker(
    location=[25.0431, 121.539723], 
    icon=folium.Icon(color="red",icon="hamburger", prefix='fa')
).add_to(m)

请参考 这个问题


嗨嗨,谢谢您的回答。我看到了那篇文章,但是我尝试了同样的方法,仍然不起作用。https://imgur.com/a/iFtTSX4 - Doeiqw Dwe
我理解你之前已经成功使用了"fa-truck",是吗?你能否让任何Fontawesome图标绘制出来?你能否让基本的Bootstrap glyphicons绘制出来(例如没有"prefix"参数的icon="glyphicon-check")? - mayosten
@DoeiqwDwe 这与 Folium 和 Leaflet 中尚未支持的新图标有关。请参见我上面修订后的回复。您将需要使用 v4.x Fontawesome 图标。希望您能找到一个适合您审美的图标! - mayosten
抱歉回复晚了,非常感谢您解决了我的问题,谢谢!!! - Doeiqw Dwe

4

很好,为我节省了很多时间 ;) - Cory C

3
我认为问题出现的原因是folium使用的是FontAwesome 4,而汉堡包图标在FontAwesome 5.7之后才有。因此解决方案要么使用FontAwesome 4图标列表中的字体,要么对Folium进行修改以更新库。
对于我来说,至少folium.Icon(color='red',icon="car", prefix='fa')有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接