您正在描述的GIS术语是线性参考,Shapely拥有这些方法。
# Length along line that is closest to the pointprint(line.project(p))# Now combine with interpolated point on linenp = line.interpolate(line.project(p))print(np) # POINT (5 7)
另一种方法是使用
nearest_points:
from shapely.ops import nearest_pointsnp = nearest_points(line, p)[0]print(np) # POINT (5 7)
它提供与线性参照技术相同的答案,但可以从更复杂的几何输入(例如两个多边形)中确定最接近的点对。



