Я пытаюсь разделить 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))
Спасибо!