我有一个点,想找出最接近它的多边形。我有点和多边形的地理数据。
![点击查看图片](https://istack.dev59.com/lMI1j.webp)
您可以使用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。
idxmin()
来简化.sort_values().index[0]
的写法。 - undefined