Python 将所有点从一条直线投影到另一条直线上
我有两个坐标元组数组(我的线),我正在尝试将线1上的所有点投影到线2上。我想得到直线2上最近点到直线1中每个点的位置,以及沿着直线的总距离(或两个最近点之间的部分距离)。我有一个使用Shapely的线串的工作解决方案,如下所示:Python 将所有点从一条直线投影到另一条直线上,python,shapely,Python,Shapely,我有两个坐标元组数组(我的线),我正在尝试将线1上的所有点投影到线2上。我想得到直线2上最近点到直线1中每个点的位置,以及沿着直线的总距离(或两个最近点之间的部分距离)。我有一个使用Shapely的线串的工作解决方案,如下所示: import shapely.geometry as geom # Import of tuples occurs here line_1 = geom.LineString(line_1_tuples) line_2 = geom.LineString(line_
import shapely.geometry as geom
# Import of tuples occurs here
line_1 = geom.LineString(line_1_tuples)
line_2 = geom.LineString(line_2_tuples)
line_3 = [line_2.interpolate(line_2.project(geom.Point(x))) for x in line_1.coords]
这个解决方案比我想象的要慢,是否有其他方法来计算投影点列表,或者加快上述实现的速度?找到最近的点是“微不足道的”:确定穿过
线1
每个点的与线2垂直的方向。所有这些垂线都有相同的坡度;您可以通过代数确定线_2
上点的坐标,作为线_1
上每个点坐标的函数(因为另一个坐标是从中导出的)
把它变成一个函数。将您的
行\u 1
点放入任何方便的Python序列中,然后将该函数应用于该序列numpy
将非常有效地为您实现这一点。您能给我们展示一些line\u 1\u tuples
和line\u 2\u tuples
的样本数据,以及预期的输出,所以这是一个?我猜,通过线条,OP表示平面中的分段线性路径,而不是几何直线,尽管从问题上看这并不明显。