【发布时间】:2018-10-24 05:30:00
【问题描述】:
我正在尝试将 Shapely LineString 在最近的点处拆分到其他坐标。我可以使用project 和interpolate 获得线上最近的点,但此时我无法分割线,因为它不是顶点。
我需要沿着边缘分割线,而不是捕捉到最近的顶点,这样最近的点就变成了线上的一个新顶点。
这是我到目前为止所做的:
from shapely.ops import split
from shapely.geometry import Point, LineString
line = LineString([(0, 0), (5,8)])
point = Point(2,3)
# Find coordinate of closest point on line to point
d = line.project(point)
p = line.interpolate(d)
print(p)
# >>> POINT (1.910112359550562 3.056179775280899)
# Split the line at the point
result = split(line, p)
print(result)
# >>> GEOMETRYCOLLECTION (LINESTRING (0 0, 5 8))
谢谢!
【问题讨论】: