如何自定义Folium中的LayerControl?

8
我使用folium.RegularPolygonMarker创建了一个地图,但在LayerControl中,我希望用"我的点"替换"macro_element_6a67a2ea0e4b460fb231fd636c605301"。此外,我希望默认情况下复选框未被选中。
这是我的代码:
import folium
from folium.plugins import MarkerCluster

points = [[0,0], [10,10], [15,30], [-15,45]]

map=folium.Map(location=[0, 0], zoom_start=4)
marker_cluster = MarkerCluster().add_to(map)
folium.TileLayer('openstreetmap').add_to(map)
folium.TileLayer('Stamen Terrain').add_to(map)
folium.LayerControl().add_to(map)
folium.PolyLine(points, color="black", weight=2.5, opacity=1).add_to(map)

for x in points:
    info = 'test'
    folium.RegularPolygonMarker(location=[x[0], x[1]], popup=info).add_to(marker_cluster)

map.save("Test.html")

enter image description here


1
你想要创建一个带有名称显示参数的FeatureGroup。然后将你的点添加到该FeatureGroup中。也许还有折线? - Bob Haffner
1个回答

13

感谢 @Bob Haffner 提供的有用提示。 解决方案是使用 FeatureGroup。 以下是对我的问题的答案:

import folium
from folium.plugins import MarkerCluster

points = [[0,0], [10,10], [15,30], [-15,45]]

map=folium.Map(location=[0, 0], zoom_start=4)
fg=folium.FeatureGroup(name='My Points', show=False)
map.add_child(fg)
marker_cluster = MarkerCluster().add_to(fg)
folium.TileLayer('openstreetmap').add_to(map)
folium.TileLayer('Stamen Terrain').add_to(map)
folium.LayerControl().add_to(map)
folium.PolyLine(points, color="black", weight=2.5, opacity=1).add_to(map)

for x in points:
    info = 'test'
    folium.RegularPolygonMarker(location=[x[0], x[1]], popup=info).add_to(marker_cluster)

map.save("Test.html")

输入图像描述


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