如何获取多边形的边作为 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])
我在一个列表中有几个正方形多边形,如何直接获取代表它们四个边的所有 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])