Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将所有点从一条直线投影到另一条直线上_Python_Shapely - Fatal编程技术网

Python 将所有点从一条直线投影到另一条直线上

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_

我有两个坐标元组数组(我的线),我正在尝试将线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_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表示平面中的分段线性路径,而不是几何直线,尽管从问题上看这并不明显。