строка задается как p1 и p2:
p1 = [833974.3939975424, 10.741845010809124]
p2 = [83392.19888888888888888888888880124 гг. 9.989807874318076] < /p>
Точка: [833972.4500000001, 10.2000000000001] < /p>
Я использовал эти функции: < /p>
Код: Выделить всё
point1, point2 = nearest_points(shp.LineString([shp.Point(p1[0], p1[1]), shp.Point(p2[0], p2[1])]), shp.Point([point[0], point[1]]))
# and
line= shp.LineString([shp.Point(p1[0], p1[1]), shp.Point(p2[0], p2[1])])
pdist= line.project(shp.Point([point[0], point[1]]))
newpoint= line.interpolate(pdist)
За несколько часов для проецирования красной точки, перпендикулярной линии. Я не мог найти правильный ответ на переполнение сходного стека.
Подробнее здесь: https://stackoverflow.com/questions/796 ... -to-a-line