我编写了一个 Python 脚本来解析 GPX 文件中的坐标。坐标存储为元组列表:(float lat, float long)
. 我使用 Shapely 的LineString
函数创建了一条可以用于每个 GPX 文件的曲线。
在解析了几个 GPX 文件后,我有一些相交的曲线,我想根据这些相交的曲线计算一些信息。为简单起见,假设我有 3 行(称它们为line1, line2, line3
)。在这个特定的场景中,相交line1
和line2
但line3
不相交。或者更直观:line2
line3
|
|
--*--- Line 2 ------
|
|
|
Line 1
|
|
|
--*--- Line 3 ------
|
|
我想做的是从这些现有曲线中创建一条新曲线。这条曲线的起点和终点将是交叉点(*
在视觉表示中用 表示),曲线的中点将是line1
这些交叉点之间的落点。
使用 Shapely 的方法获得相交点没有问题intersection()
,但我不知道如何抓住line1
这些相交点之间的那个点。
我考虑过确定line1
是向东/向西还是向南/向北。基于该结果,我可以将相交点的纬度或经度与线中的每个点(line1
在这种情况下)进行比较,一旦我找到一个在相交点的纬度或经度内的点,我就可以开始一条新线那些以相交点为界的坐标。
然而,这似乎是一项疯狂的工作。我觉得必须有一个更简单的解决方案。特别是因为我对 Shapely 有非常基本的了解。任何帮助将不胜感激。