<丫
Folium
是一个基于Python的库,用于将地理数据转换为交互式地图。它使用Leaflet.js
前端库来生成地图,并且可以轻松集成到Web应用程序中。Folium
特别适合于数据科学和地理信息系统(GIS)领域的可视化。
folium.Map()
创建一个地图对象。
location
: 地图中心的经纬度坐标。zoom_start
: 初始缩放级别。tiles
: 地图底图的URL或内置样式名称。folium.Marker()
在地图上添加一个标记。
location
: 标记的经纬度坐标。popup
: 点击标记时显示的弹出窗口内容。tooltip
: 鼠标悬停时显示的提示信息。icon
: 自定义标记图标。folium.Circle()
在地图上绘制一个圆形区域。
location
: 圆心的经纬度坐标。radius
: 圆的半径,单位为米。color
: 圆的边框颜色。folium.PolyLine()
在地图上绘制一条折线。
locations
: 折线各点的经纬度坐标列表。color
: 线条颜色。weight
: 线条宽度。folium.Polygon()
在地图上绘制一个多边形。
locations
: 多边形各点的经纬度坐标列表。fill
: 是否填充多边形内部。color
: 线条颜色。fill_color
: 填充颜色。folium.LayerControl()
添加图层控制到地图。
collapsed
: 是否默认折叠图层控制。folium.MarkerCluster()
将多个标记聚合为一个图层。
markers
: 要聚合的标记列表。以下是一个使用Folium
绘制地图并添加标记的示例:
import folium
import pandas as pd
from folium.plugins import MarkerCluster
# 模拟一些数据
data = {
'Name': ['Place A', 'Place B', 'Place C', 'Place D'],
'Latitude': [39.9, 39.8, 40.0, 40.1],
'Longitude': [116.4, 116.5, 116.6, 116.7],
'Description': ['Description A', 'Description B', 'Description C', 'Description D']
}
df = pd.DataFrame(data)
# 创建地图对象,中心坐标为北京
m = folium.Map(location=[39.9, 116.4], zoom_start=12, tiles='Stamen Terrain')
# 添加标记
marker_cluster = MarkerCluster().add_to(m)
for index, row in df.iterrows():
folium.Marker(
location=[row['Latitude'], row['Longitude']],
popup=f"{row['Name']}
{row['Description']}",
icon=folium.Icon(color='red', icon='info-sign')
).add_to(marker_cluster)
# 添加多边形
folium.Polygon(
locations=[
[39.9, 116.4],
[39.95, 116.45],
[40.0, 116.4],
[39.9, 116.4]
],
color='blue',
fill=True,
fill_color='#AAF',
fill_opacity=0.5
).add_to(m)
# 添加热力图
from folium.plugins import HeatMap
heat_data = [[39.9, 116.4, 0.5], [39.95, 116.45, 0.7], [40.0, 116.4, 0.6]]
HeatMap(heat_data).add_to(m)
# 添加图片覆盖层
from folium.raster_layers import ImageOverlay
image_path = 'path_to_your_image.jpg'
ImageOverlay(image_path, bounds=[[39.88, 116.38], [40.03, 116.58]]).add_to(m)
# 保存地图为HTML文件
m.save('complex_map.html')
示例解释