我可以在空间上连接 Python Geopandas 上的几何以外的列吗?

Can I spatially join on a column other than geometry on Python Geopandas?

GeoDataFrame 中,我有一列包含多边形的几何形状(Polygon 个对象),另一列包含 Point 个对象,代表多边形的质心。现在,我想做的是能够在质心列上加入空间,例如,而不是做

test = gpd.sjoin(M, Gsq, op="within")

我可以做类似

test = gpd.sjoin(M["centroid"], Gsq, op="within")

到目前为止,如果我用质心覆盖整个几何字段,sjoin 就可以工作,但这太丑陋了。那么,我可以通过什么方式加入给定的专栏?

根据 geopandas.sjoin 命令的官方 documentation,没有选择 select 不同的列作为操作的几何形状。

但是,您可以在地理数据框中包含两列几何数据(例如,geometry_pg 用于多边形几何,geometry_pt 用于质心点几何。然后您可以设置 "active" geodataframe 的几何图形到一列或另一列。这样你就可以在不丢弃任何数据的情况下进行空间连接。也可以很容易地识别出什么几何图形在任何时候都是活动的。关于如何做到这一点,只需查看官方 documentation 的geodataframe,它很清楚并且有一个简单的例子。

希望对您有所帮助。