如何提取多边形的边并转换为LineStrings格式?
正方形多边形批量提取边界LineString实现方案
你提到的用polygon.exterior.coords配合列表推导式的方案是完全可行的,具体实现如下:
实现思路
- 单个正方形多边形的外边界坐标是首尾闭合的序列,共5个坐标点(第1个和第5个坐标完全重合),4条边对应4组相邻坐标点
- 两层列表推导式分别遍历所有多边形、每个多边形的4组相邻点,直接生成LineString对象
完整实现代码
import geopandas as gpd from shapely.geometry import LineString # 读取GeoJSON文件 frame = gpd.read_file("my_file.geojson") # 提取几何列的多边形列表 polygon_list = frame["geometry"].tolist() # 列表推导式生成所有边的LineString列表 all_edge_lines = [ LineString([poly.exterior.coords[i], poly.exterior.coords[i+1]]) for poly in polygon_list # 正方形固定4条边,也可以替换为 range(len(poly.exterior.coords)-1) 适配任意多边形 for i in range(4) ]
扩展说明
如果需要适配任意边数的多边形,只需要把代码中range(4)替换为range(len(poly.exterior.coords) - 1)即可,会自动根据多边形边数生成对应数量的LineString。
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

