假设我有一个列表,或 pandas 系列,或纬度经度对。 使用 Folium,我可以使用
coords = [46.8354, -121.7325]
map_4 = folium.Map(location=[46.8527, -121.7649], tiles='Stamen Terrain',
zoom_start=13)
folium.Marker(location=coords).add_to(map_4)
绘制一对坐标的标记,但是当我尝试传递列表列表时,没有绘制任何内容。 我可以循环遍历列表列表并绘制标记,但我想知道是否可以只传递一个参数并绘制几个标记。
当然可以!可以使用 Folium 在地图上添加一系列标记,而无需循环。Folium 提供了
folium.Marker
类来添加单个标记,以及
folium.FeatureGroup
类来组织多个标记。
方法一: 使用循环添加多个标记
虽然提到了不想循环,但为了完整起见,让我们先看看如何使用循环来做到这一点:
import folium
# 的坐标列表
coordinates = [
[46.8354, -121.7325],
[46.8527, -121.7649],
[46.8700, -121.7874]
]
# 创建地图
map_4 = folium.Map(location=[46.8527, -121.7649], tiles='Stamen Terrain', zoom_start=13)
# 循环遍历坐标列表并添加标记
for coord in coordinates:
folium.Marker(location=coord).add_to(map_4)
# 保存地图
map_4.save("map_with_markers.html")
方法二: 使用 FeatureGroup 添加多个标记
使用
FeatureGroup
可以更好地组织标记,特别是当想对它们进行分组或添加图例时:
import folium
# 的坐标列表
coordinates = [
[46.8354, -121.7325],
[46.8527, -121.7649],
[46.8700, -121.7874]
]
# 创建地图
map_4 = folium.Map(location=[46.8527, -121.7649], tiles='Stamen Terrain', zoom_start=13)
# 创建 FeatureGroup 来容纳标记
markers_group = folium.FeatureGroup(name="My Markers")
# 循环遍历坐标列表并添加标记到 FeatureGroup
for coord in coordinates:
folium.Marker(location=coord).add_to(markers_group)
# 将 FeatureGroup 添加到地图
markers_group.add_to(map_4)
# 保存地图
map_4.save("map_with_markers_grouped.html")
这两种方法都可以在地图上添加一系列标记。选择哪种方法取决于的具体需求和偏好。
标签:python,folium From: 42330802