在 Geopandas 中,如何找到最接近一个点的多边形?

5
我有一个点,想找出最接近它的多边形。我有点和多边形的地理数据。 点击查看图片
1个回答

10

您可以使用distance来查找到每个多边形的距离并进行排序,以检索最近的多边形。

示例

>>> from shapely.geometry import Point, Polygon
>>> import geopandas as gpd
>>> d = {'geometry': [Polygon([(0, 0), (1, 1), (1, 0)]), Polygon([(3, 3), (4, 3), (4, 4)])]}
>>> gdf = gpd.GeoDataFrame(d)
>>> red_point = Point(1,2)
>>> polygon_index = gdf.distance(red_point).sort_values().index[0]
>>> gdf.loc[polygon_index]
geometry    POLYGON ((0.00000 0.00000, 1.00000 1.00000, 1....
Name: 0, dtype: geometry

注意: 记得设置GeoDataFrame的CRS。


1
这是从点到多边形中心的距离还是最近的多边形边缘的距离? - quanty
可以使用idxmin()来简化.sort_values().index[0]的写法。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接