Координата ближайшей точки на линии

Существует полилиния со списком координат вершин = [(x1, y1), (x2, y2), (x3, y3),...] и точкой (x, y). В Shapely geometry1.distance(geometry2) возвращает кратчайшее расстояние между двумя геометриями.

>>> from shapely.geometry import LineString, Point
>>> line = LineString([(0,0),(5,7),(12,6)])         #geometry2
>>> list(line.coords)
[(0.0, 0.0), (5.0, 7.0), (12.0, 6.0)]
>>> p = Point(4,8)     #geometry1
>>> list(p.coords)
[(4.0, 8.0)]
>>> p.distance(line)
1.4142135623730951

Но мне также нужно найти координату точки на прямой, ближайшей к точке (x, y). В приведенном выше примере это координата точки объекта LineString, которая находится на расстоянии 1.4142135623730951 от точки (4,8). Метод distance() должен иметь координаты при расчете расстояния. Есть ли способ вернуть его из этого метода?

Ответы