小智 8
您可以尝试使用中心线库。它支持多重多边形和复杂多边形作为输入(基本上是shapely支持的任何输入),并输出sCenterline对象。MultiLineString
根据您的描述,您应该使用给定的点作为输入来创建一个Polygon或一个MultiPolygon对象shapely,并将(多)多边形对象作为输入传递给该类Centerline。拥有Centerline对象后,您就可以执行对对象执行的任何操作MultiLineString。README.md文件中提供了一个示例:
>>> from shapely.geometry import Polygon
>>> from centerline.geometry import Centerline
>>> polygon = Polygon([[0, 0], [0, 4], [4, 4], [4, 0]])
>>> attributes = {"id": 1, "name": "polygon", "valid": True}
>>> centerline = Centerline(polygon, **attributes)
>>> centerline.id == 1
True
>>> centerline.name
'polygon'
>>> centerline.geoms
<shapely.geometry.base.GeometrySequence object at 0x7f7d24116210>
Run Code Online (Sandbox Code Playgroud)
还有一个用于转换文件的命令行脚本。如果GDAL/OGR支持该文件,则脚本应该能够对其进行转换。