如何获取多边形的边作为 LineStrings?

How to get the edges of a polygon as LineStrings?

我在一个列表中有几个正方形多边形,如何直接获取代表它们四个边的所有 LineStrings 的列表?例如,使用 polygon.exterior.coords 的列表理解。

import geopandas as gpd
frame = gpd.read_file("my_file.geojson")
liste = frame["geometry"].tolist()

试试这个

frame[0]['geometry']['type']  # expect 'Polygon', or other geometry type

如果是'Polygon',你可以通过这个命令得到一长串几何坐标:-

coord_list = frame[0]['geometry']['coordinates']

但是您可能会出错。在这种情况下,您需要 post 所有相关代码和错误消息。

如果 coord_list 适合创建 LineString,那么,您可以继续下一步。

是这样的吗?

from shapely.geometry import Polygon, LineString

poly = Polygon([[0, 0], [1, 0], [1, 1], [0, 0]])
b = poly.boundary.coords
linestrings = [LineString(b[k:k+2]) for k in range(len(b) - 1)]
print([list(ls.coords) for ls in linestrings])