查找相交点以及线段

时间:2019-05-28 06:54:31

标签: python shapely.geometry

我有两条线路径(非直线),我想确定它们在哪一段相交。我的第一行包含97个点,另一行包含50个点,它们在一个点处相交。为了简单起见,我将在下面使用较小的数据集。我可以使用Shapely intersection方法找到交点,但是我很难找到线段。

from shapely.geometry import *
a = [[1246.27886576,  397.92212558], [1257.07143932,  386.62625213], [1248.9911559 ,  364.85303935], [1243.15355998,  351.2073384 ], [1252.96611444,  345.8853271 ], [1259.99528981,  343.00414527]]

b = [ [1234.5260801 ,  364.17967993], [1243.18178589,  363.32934182], [1251.03950905,  360.78543246], [1256.76030287,  358.07463708], [1293.17663569,  365.07308725], [1311.17586247,  368.66783979]]

line1 = LineString(a)
line2 = LineString(b)
point = line1.intersection(line2)
## point is (1247.711909530379 361.8627307297313)

然后我将在下面找到在“ a”中具有交点的线段

for x in range(len(a)-1):
        line = LineString(a[x:x+2])
        if(point.within(line)):
            print(x)

问题是我什么也没得到。通过目视观察该点,我希望该点在第三点和第四点之间。但是“内在点”正在返回假。我怀疑由于小数点丢失了相等性。

有什么办法可以找到相交的路段吗?

0 个答案:

没有答案