擅长:python、mysql、java
<p>以防有人在为一个古老的geopandas版本而挣扎。解决方法如下:</p>
<pre><code>from scipy.spatial import cKDTree
def ckdnearest(gdA, gdB, bcol):
nA = np.array(list(zip(gdA.geometry.map(lambda val: val.x),
gdA.geometry.map(lambda val: val.y))))
nB = np.array(list(zip(gdB.geometry.map(lambda val: val.x),
gdB.geometry.map(lambda val: val.y))))
btree = cKDTree(nB)
dist, idx = btree.query(nA, k=1)
df = pd.DataFrame.from_dict({'distance': dist.astype(int),
'bcol': gdB.loc[idx, bcol].values})
return df
df = ckdnearest(outer, inner, 'node')
print(df)
</code></pre>