geopandas.GeoSeries.distance#
- GeoSeries.distance(other, align=True)#
返回一个
Series
包含要对齐的距离 other 。该操作以1对1的行方式工作:
- 参数
- otherGeosSeries或几何对象
要计算距离的地理序列(元素级)或几何对象。
- align布尔值(默认为True)
如果为True,则根据其索引自动对齐GeoSeries。如果为False,则保留元素的顺序。
- 退货
- 系列(浮点)
示例
>>> from shapely.geometry import Polygon, LineString, Point >>> s = geopandas.GeoSeries( ... [ ... Polygon([(0, 0), (1, 0), (1, 1)]), ... Polygon([(0, 0), (-1, 0), (-1, 1)]), ... LineString([(1, 1), (0, 0)]), ... Point(0, 0), ... ], ... ) >>> s2 = geopandas.GeoSeries( ... [ ... Polygon([(0.5, 0.5), (1.5, 0.5), (1.5, 1.5), (0.5, 1.5)]), ... Point(3, 1), ... LineString([(1, 0), (2, 0)]), ... Point(0, 1), ... ], ... index=range(1, 5), ... )
>>> s 0 POLYGON ((0.00000 0.00000, 1.00000 0.00000, 1.... 1 POLYGON ((0.00000 0.00000, -1.00000 0.00000, -... 2 LINESTRING (1.00000 1.00000, 0.00000 0.00000) 3 POINT (0.00000 0.00000) dtype: geometry
>>> s2 1 POLYGON ((0.50000 0.50000, 1.50000 0.50000, 1.... 2 POINT (3.00000 1.00000) 3 LINESTRING (1.00000 0.00000, 2.00000 0.00000) 4 POINT (0.00000 1.00000) dtype: geometry
我们可以检查GeoSeries的每个几何体到单个几何体的距离:
>>> point = Point(-1, 0) >>> s.distance(point) 0 1.0 1 0.0 2 1.0 3 1.0 dtype: float64
我们还可以逐行检查两个GeoSeries。上面的GeoSeries有不同的指数。我们可以根据索引值对齐这两个GeoSeries,并使用具有相同索引的元素
align=True
或者忽略索引并根据元素的匹配顺序使用元素。align=False
:>>> s.distance(s2, align=True) 0 NaN 1 0.707107 2 2.000000 3 1.000000 4 NaN dtype: float64
>>> s.distance(s2, align=False) 0 0.000000 1 3.162278 2 0.707107 3 1.000000 dtype: float64