如何通过H3六边形ID获取质心经纬度?调用cell_to_lat_lng报错求解
H3六边形ID获取质心经纬度的正确方法
问题原因
你遇到的错误是函数名拼写错误,且H3不同API接口的函数命名有差异:
- 你调用的
cell_to_lat_lng是错误写法,正确函数名是cell_to_latlng(lng为连写格式,不是下划线分隔) from h3 import h3导入的是basic_str风格API,该接口确实存在cell_to_latlng函数,只是你拼写有误。
基础使用示例
修正函数名即可正常调用:
from h3 import h3 # 正确调用方式 latitude, longitude = h3.cell_to_latlng('88396c0331fffff') print(f"质心纬度: {latitude}, 质心经度: {longitude}")
其他API风格的调用方式
如果习惯直接导入h3模块,也可以使用通用函数h3_to_geo(和cell_to_latlng功能完全一致):
import h3 latitude, longitude = h3.h3_to_geo('88396c0331fffff')
Pandas DataFrame批量处理
结合你已有的DataFrame场景,批量将H3 ID列转换为质心经纬度列的代码示例:
import pandas as pd from h3 import h3 # 假设你的DataFrame包含'h3_id'列 df = pd.DataFrame({'h3_id': ['88396c0331fffff', '88396c0335fffff']}) # 批量生成质心经纬度列 df[['centroid_lat', 'centroid_lng']] = df['h3_id'].apply( lambda h3_id: pd.Series(h3.cell_to_latlng(h3_id)) ) print(df)
内容的提问来源于stack exchange,提问作者cs0815
相关产品推荐
相关产品推荐

