如何调整Folium地图中Marker标记的尺寸以提升显示可见性
Folium Marker标记尺寸缩放实现方法
默认的folium.Marker调用的是Leaflet原生固定尺寸的地图钉图标,不支持直接传入尺寸参数修改大小,你注释中写的参数传参位置错误才会不生效,以下是两种可直接落地的实现方案:
方案1:使用CustomIcon缩放原有地图钉样式
如果需要保留地图钉的标记样式,通过folium.CustomIcon类指定图标尺寸即可完成缩放,注意同步设置锚点保证图标尖部精准对准坐标点:
# 可替换为本地图标路径,此处引用Leaflet默认蓝色标记的静态资源地址 marker_icon_url = "https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/images/marker-icon.png" for i in range(len(destinations)): folium.Marker( location=[destinations.iloc[i][' Lat dest'], destinations.iloc[i][' Lon dest']], icon=folium.CustomIcon( icon_image=marker_icon_url, icon_size=(16, 25), # 格式为(宽度, 高度),调整数值即可改标记大小 icon_anchor=(8, 25) # 锚点设置为宽度1/2、高度全值,对准目标坐标 ) ).add_to(m) m
方案2:使用CircleMarker实现高可控性的点标记
如果不需要地图钉样式,推荐用folium.CircleMarker,原生支持半径、边框、填充色的全维度自定义,不会出现图标拉伸模糊的问题,批量点展示清晰度更高:
for i in range(len(destinations)): folium.CircleMarker( location=[destinations.iloc[i][' Lat dest'], destinations.iloc[i][' Lon dest']], radius=3, # 直接修改半径值调整标记大小 color="#2563eb", weight=1, fill=True, fill_color="#2563eb", fill_opacity=0.9 ).add_to(m) m
注意:你之前注释里写的
radius、weight是CircleMarker的专属参数,不能直接传入普通Marker;icon_size是CustomIcon的参数,直接写在folium.Icon的初始化参数里不会生效。

内容的提问来源于stack exchange,提问作者Cla
相关产品推荐
相关产品推荐

