我有两个坐标元组数组(我的线),我正在尝试将线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]
这个解决方案比我想要的要慢,有没有其他方法来计算投影点列表,或者有没有一种方法来加速上面的实现
找到最近的点是“微不足道的”:确定穿过
line_1
每个点的垂直于line_2
。所有这些垂线都有相同的坡度;您可以执行代数来确定line_2
上点的坐标,作为line_1
上每个点的坐标的函数(因为另一个坐标是从中导出的)把它变成一个函数。将
line_1
点放入任何方便的Python序列中,然后apply
将函数添加到该序列中numpy
将非常有效地为您执行此操作相关问题 更多 >
编程相关推荐