我有一个geopandas数据框,其中包含几个从lat、lon点数据创建的线串。对于所有直线交点,我需要在每个直线串中找到距离该交点最近的点
因此,如果dataframe中的两条线相交,我需要在每个linestring中找到距离该相交点最近的点。我使用itertools找到了所有可能的交点,这些交点与本文中接受的答案类似:https://gis.stackexchange.com/questions/137909/intersecting-lines-to-get-crossings-using-python-with-qgis
对于geopandas数据帧中的所有线交点,是否有更简单的方法来查找每个线串中距离交点最近的点
我的dataframe看起来是这样的,每个文件名都包含自己的行字符串:
geometry
file
2015_may14_10 LINESTRING (-140.43855 59.80302, -140.44101 59...
2015_may14_11 LINESTRING (-140.84909 59.83433, -140.84758 59...
2015_may14_12 LINESTRING (-140.66859 59.79890, -140.66600 59...
2015_may14_15 LINESTRING (-140.19642 59.86655, -140.19795 59...
2015_may14_16 LINESTRING (-141.08783 59.94741, -141.08610 59...
让我们创建n条随机线:
这使得:
让我们来看看我们的十字路口:
这里我只是有一点误解,有时
inter = i.intersection(j)
返回一个LineString
对象,我不知道两条不同的线如何作为一个交点输出另一条线(除非它们是相同的)。我让你来决定现在,我们可以用结果点创建
df
:我们可以看到,我们更多地使用线段而不是纯直线,因为交点(即点)的数量是
2220
。我不同意认为我们有幸拥有{{CD5}}平行线。然后,我们为操作导入我们最好的朋友:
我们计算期望的输出:
希望,这回答了你的问题,如果你有更好的答案,请告诉我
相关问题 更多 >
编程相关推荐