You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Folium的.explore绘制H3六边形无显示问题求助

排查Folium+H3六边形不显示的问题

以下是几个核心问题的排查和修复方案:

1. 坐标顺序错误(最可能的原因)

H3的h3_to_geo_boundary返回的坐标格式是[纬度, 经度],但GeoJSON标准(以及GeoPandas的Polygon)要求坐标顺序为[经度, 纬度]。你的代码直接使用返回值,导致多边形坐标颠倒,无法在正确位置渲染。

修复代码:

def h3pol(h3_id):
    # 反转每个坐标对的经纬度顺序
    coords = h3.h3_to_geo_boundary(h3_id, geo_json=True)
    reversed_coords = [[lng, lat] for lat, lng in coords]
    return Polygon(reversed_coords)

2. 冗余的CRS转换

代码中to_crs("4326")是重复操作——你已经通过crs='EPSG:4326'指定了坐标系,重复转换可能引发潜在问题,直接删除即可:

desthex = gpd.GeoDataFrame(desthex, geometry=desthex["geometry"], crs='EPSG:4326')

3. 验证数据有效性

先确认desthex是否包含有效数据:

print(desthex.shape)  # 检查是否有行数据
print(desthex.head())  # 查看geometry列是否生成了有效多边形

如果desthex为空,说明原始数据B的latitude_Destino/longitude_Destino可能存在空值或无效值,导致H3编码生成失败。

4. 调整explore调用逻辑

explore方法默认会创建新地图实例,如果你要将图层添加到已有的m6,直接用m参数指定基础地图更稳妥,避免图层添加错误:

desthex.explore(
    m=m6,  # 指定目标地图
    column="Dest",
    scheme="EqualInterval",
    k=10,
    cmap='Greens',
    highlight=True,
    legend=False,
    popup=True,
    legend_kwds={'interval': True}
)

无需再调用.add_to(m6)。

内容的提问来源于stack exchange,提问作者FG85

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:53:20