我正在尝试将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))
谢谢!