2 подсказки перед решением:
- Не используйте
map
в качестве имени переменной.map
- зарезервированное слово в Python.Пользователи Folium обычно используют имя переменной m
для карт - Ваш код содержит
SyntaxError
.У вас есть 2 точки в fill_opacity=1.0))..add_to(Map)
Решение : вам также необходимо выполнить итерацию по каждой паре lat-long с циклом for, а затем объединить их на слое.Есть другие способы сделать это без итераций (например, geoJson), но в вашем случае это самый простой.Проверьте следующий код:
import folium
m = folium.Map(location=[39.712183, -104.998424], zoom_start=5)
point_layer = folium.FeatureGroup(name="Query Search")
latLong = [(36.314292,-117.517516,"initial point"),
(40.041159,-116.153016,"second point"),
(34.014757,-119.821985,"third point")]
for lat,lng,nameP in latLong:
point_layer.add_child(folium.CircleMarker(location=[lat, lng], radius=10,
popup=str(nameP) + " Lat: " + str(lat) + " , Long: " + str(lng),
tooltip=str(nameP) + " Lat: " + str(lat) + " , Long: " + str(lng),
fill=True, # Set fill to True
color='red',
fill_opacity=1.0)).add_to(m)
m.add_child(point_layer)
m.add_child(folium.LayerControl())
m.save("Map1.html")
Если вы хотите, чтобы всплывающая подсказка или всплывающее окно выглядели лучше, вставьте текст в фолио. Рамка с Html, как показано здесь, в разделе необычных всплывающих окон
Карта:
пример карты с предыдущим кодом