我正在使用 Python 中的 Shapely 库。我找到两条线的交点,返回值作为 MultiPoint 对象给出。
如何解构对象以获得交点中的各个点?
代码如下:
from shapely.geometry import LineString, MultiLineString
a = LineString([(0, 1), (0, 2), (1, 1), (2, 0)])
b = LineString([(0, 0), (1, 1), (2, 1), (2, 0)])
x = a.intersection(b)
输出:
print(x)
MULTIPOINT (1 1, 2 0)
因此,在这种情况下,我会寻找一种方法来提取交点 (1,1) 和 (2,0)。
最佳答案
您可以索引生成的多点:
>>> str(x)
'MULTIPOINT (1 1, 2 0)'
>>> print(len(x))
2
>>> print(x[0].x)
1.0
>>> print(x[0].y)
1.0
如果你想要一个带有坐标的新列表,你可以使用:
>>> [(p.x, p.y) for p in x]
[(1.0, 1.0), (2.0, 0.0)]
关于python - 访问 Shapely MultiPoint 中的各个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51060842/