geopandas.GeoSeries.line_merge#
- GeoSeries.line_merge(directed=False)[来源]#
返回通过组合MultiLineString中的线段形成的(多)线段字符串。
当两条线相交时,线在其端点处连接在一起。 当三条或更多线在端点处相交时,线不会连接。 无法连接的线元素在结果中的 MultiLineString 中保持不变。
每个合并的 LineString 的方向将是其来源的 LineStrings 中的多数方向。除非指定
directed=True,否则该操作将不会改变线内点的顺序,因此仅合并方向不变的线。非线性几何导致空的几何集合。
- Parameters:
- directedbool, default False
仅在不改变点顺序的情况下合并线。 需要 GEOS >= 3.11.0
- Returns:
- GeoSeries
示例
>>> from shapely.geometry import MultiLineString, Point >>> s = geopandas.GeoSeries( ... [ ... MultiLineString([[(0, 2), (0, 10)], [(0, 10), (5, 10)]]), ... MultiLineString([[(0, 2), (0, 10)], [(0, 11), (5, 10)]]), ... MultiLineString(), ... MultiLineString([[(0, 0), (1, 0)], [(0, 0), (3, 0)]]), ... Point(0, 0), ... ] ... ) >>> s 0 MULTILINESTRING ((0 2, 0 10), (0 10, 5 10)) 1 MULTILINESTRING ((0 2, 0 10), (0 11, 5 10)) 2 MULTILINESTRING EMPTY 3 MULTILINESTRING ((0 0, 1 0), (0 0, 3 0)) 4 POINT (0 0) dtype: geometry
>>> s.line_merge() 0 LINESTRING (0 2, 0 10, 5 10) 1 MULTILINESTRING ((0 2, 0 10), (0 11, 5 10)) 2 GEOMETRYCOLLECTION EMPTY 3 LINESTRING (1 0, 0 0, 3 0) 4 GEOMETRYCOLLECTION EMPTY dtype: geometry
使用
directed=True,您可以避免在行内更改点的顺序,并仅合并那些不需要改变方向的行:>>> s.line_merge(directed=True) 0 LINESTRING (0 2, 0 10, 5 10) 1 MULTILINESTRING ((0 2, 0 10), (0 11, 5 10)) 2 GEOMETRYCOLLECTION EMPTY 3 MULTILINESTRING ((0 0, 1 0), (0 0, 3 0)) 4 GEOMETRYCOLLECTION EMPTY dtype: geometry