import geopandas as gpd
# 指定shp文件路径
shp_path = 'D:\\数字孪生资料\\2000'
# 读取shp文件
data = gpd.read_file(shp_path)
# 假设高程都为0的情况下判断两根线是否交叉
cross_lines = []
for i in range(len(data)):
line1 = data.loc[i, 'geometry']
for j in range(i+1, len(data)):
line2 = data.loc[j, 'geometry']
if line1.crosses(line2):
cross_lines.append((data.loc[i, 'featid'], data.loc[j, 'featid']))
# 输出交叉线的featid
for ids in cross_lines:
print(f"featid = {ids[0]} 和 featid = {ids[1]} 交叉")
print("输出完成,共"+str(len(cross_lines))+"对 交叉管道" )
利用python脚本判断两根管线(两条空间的线)是否有交叉
于 2024-03-27 10:38:26 首次发布