假设我有一个列表,或 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)
但是当我尝试传递列表列表时,没有绘制任何内容。 我可以循环遍历列表列表并绘制标记,但我想知道是否可以只传递一个参数并绘制几个标记。
你可以这样做:
map = folium.Map(location = [lat, lng], zoom_start = 4, tiles = "Mapbox bright")
feature_group = folium.FeatureGroup("Locations")
for lat, lng, name in zip(lat_lst, lng_lst, name_lst):
feature_group.add_child(folium.Marker(location=[lat,lon],popup=name))
map.add_child(feature_group)
您还可以从中创建一个html文件来查看是否添加了标记
map.save(outfile = "test.html")
现在在浏览器中打开 test.html 文件并检查标记
我创建一个函数来添加单个点,然后使用 DataFrame.apply() 通过该函数运行每一行。
for index, row in data.iterrows():
custom_icon = folium.features.CustomIcon('path/to/image',icon_size=(50, 50))
folium.Marker([row['data'],row['data']],icon=custom_icon).add_to(map)