Если вы хотите научиться создавать интерактивные карты на Python с помощью библиотеки Folium… вы попали по адресу!! После краткого прочтения вы сможете пройти путь от новичка до продвинутого разработчика Folium.

Folium — это библиотека обработки данных с открытым исходным кодом на python. Манипулируйте данными для визуализации на карте Leaflet с помощью folium.

$ pip install folium
$ conda install -c conda-forge folium

Создайте свою первую базовую карту:

lat,long=29.80981,77.4917 
map = folium.Map(location=[lat, long], zoom_start=5,tiles=’cartodbdark_matter’,control_scale=True)

Приведенный выше код создаст базовую карту, инициировав начальные координаты нужной карты.

Zoom_Start: начальный уровень масштабирования карты, который по умолчанию равен 10.

Названия: в библиотеке есть ряд встроенных наборов фрагментов из OpenStreetMap, MapQuest Open, MapQuest Open Aerial, Mapbox и Stamen.

Control_Scale: добавлять ли контрольный масштаб на карту, по умолчанию False.

Добавьте плагины на карту:

Плагины — это встроенные свойства библиотеки folium, которые делают ее более интерактивной и информативной. Их можно добавить в качестве дочерних элементов к базовой карте и расширить ее функциональные возможности, такие как инструменты рисования, мини-карта, полноэкранные функции и т. д. Объект LayerControl добавляется на карту фолиума. Этот объект должен быть добавлен к объекту Map. В элемент управления слоя включены только дочерние слои Map. Импорт: из подключаемых модулей импорта folium

#Add Plugins
# add tiles to map, Create a tile layer to append on a Map
folium.raster_layers.TileLayer('Open Street Map').add_to(map)
folium.raster_layers.TileLayer('Stamen Terrain').add_to(map)
folium.raster_layers.TileLayer('Stamen Toner').add_to(map)
folium.raster_layers.TileLayer('Stamen Watercolor').add_to(map)
folium.raster_layers.TileLayer('CartoDB Positron').add_to(map)
folium.raster_layers.TileLayer('CartoDB Dark_Matter').add_to(map)
# add layer control to show different maps
folium.LayerControl().add_to(map)
minimap = plugins.MiniMap(toggle_display=True)
# add minimap to map
map.add_child(minimap)
# add full screen button to map
plugins.Fullscreen(position='topright').add_to(map)
draw = plugins.Draw(export=True)
# add draw tools to map
draw.add_to(map)
display(map)

Несколько стилей маркеров и всплывающих окон:

Folium поддерживает отображение множества стилей маркеров с всплывающим текстом. На карту фолиума можно добавить маркеры, чтобы показать расположение точек. В приведенном ниже примере круговые маркеры используются для визуализации изменчивости населения в разных штатах Индии. Радиус кругов можно настроить по желанию. Здесь радиус указывает размер населения. Чем больше круг, тем больше население (зеленые точки).

Можно использовать всплывающие окна с маркерами для передачи информации о том, что находится в каждой точке. Всплывающие окна похожи на метки, которые могут быть строкой или экранированным HTML-кодом.

#Create circle markers with customized size
for lat, long, index,Poplulation in zip(df_sort['Lat'], df_sort['Long'], df_sort['index'],df_sort['Population]):
    folium.CircleMarker( [lat, long], radius=5*(index+2), popup =   'Population:'str(Poplulation),fill=True,color='r',fill_color=colordict[index], fill_opacity=0.7).add_to(map)
map

Точно так же другие маркеры, такие как полигоны, простые_маркеры, кластеры маркеров и т. д., могут быть сгенерированы с использованием карт фолиума.

Карта без легенды????? Добавьте легенду с помощью html:

Легенду можно добавить на карту несколькими способами. Можно использовать переменную html и добавить ее в основную функцию или использовать функцию Linear Colormap (закодированную ниже).

#Add a bar legend to the map
variable = ‘Population’
gdf1=df_sort.sort_values(by=variable, ascending=True)
colormap = folium.LinearColormap(colors=[“orange”,”cadetblue”,”lightgreen”],
 vmin=gdf1.loc[gdf1[variable]>0, variable].min(), 
 vmax=gdf1.loc[gdf1[variable]>0, variable].max()).to_step(n=3)
colormap.caption = “Population of India Statewise”
colormap.add_to(map)
map

Сохраните карту как файл HTML:

Интерактивные карты могут быть сохранены в виде html-файлов, к которым может получить доступ любой желающий.

map.save("Population-folium-map.html")

Надеюсь, это было познавательное чтение!!

Полный код для справки можно найти здесь: GitHub

Следующая ссылка включает в себя другие функции фолиума, которые могут быть полезны: ссылка