Если вы хотите научиться создавать интерактивные карты на 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
Следующая ссылка включает в себя другие функции фолиума, которые могут быть полезны: ссылка