我已经将地理坐标转换成了geohash。我的目标是以一定的精度计算距离。我试图将geohash解码回地理坐标,但我在尝试对数据框中的一列应用这个功能时失败了。
回答:
假设如下:
- 您询问的是关于Python的问题(如果这是关于R、Scala或其他数据框的问题,我深表歉意,但您没有指定)
- 您有一个Python pandas DataFrame对象
df
df
有一个名为geohash
的列,包含您的geohash- 您已经安装并导入了
geohash2
库(这可能适用于其他Geohash库…) - 您希望用一个新的DataFrame覆盖
df
,这个新DataFrame包含所有旧数据以及新的latitude
和longitude
列
以下代码应该可以工作:
def gh_decode(hash): lat, lon = geohash2.decode(hash) return pd.Series({"latitude":lat, "longitude":lon})df = df.join(df["geohash"].apply(gh_decode))