一个点集里的点两两连线,比如有4个点,则连3+2+1=6条线;有38个点,则连37+36+35+···+3+2+1=703条线
百度发现大佬们的骚操作,xy转线,遍历点集中的点,依次作为起始点。
我看了有一个大佬用python写了代码(不知道为啥我运行一直报错)
import pandas as pd def xy2line(tablepath): # 单一站点+XY坐标表的地址 xy_table = dict(pd.read_excel(tablepath)) sn, sx, sy = xy_table["STATIONNAME"], xy_table["STARTX"], xy_table["STARTY"] # 坐标表的字段名是STATIONNAME、STARTX、STARTY station_num = len(sn) result_dict = {"STARTSTATIONNAME": [], "STARTX": [], "STARTY": [], "ENDSTATIONNAME": [], "ENDX": [], "ENDY": [],"SNEN":[]} # 输出表的字段 for i in range(station_num - 1): # 循环 for j in range(i + 1, station_num): result_dict["STARTSTATIONNAME"].append(sn[i]) result_dict["STARTX"].append(sx[i]) result_dict["STARTY"].append(sy[i]) result_dict["ENDSTATIONNAME"].append(sn[j]) result_dict["ENDX"].append(sx[j]) result_dict["ENDY"].append(sy[j]) result_dict["SNEN"].append(sn[i]+","+sy[j]) df = pd.DataFrame(result_dict) # 转成DF输出到excel df.to_excel("xytoline2.xlsx", index=False) if __name__ == "__main__": xy2line("xytoline1.xlsx")
都快要放弃了,然后翻书在书上找到了【构造视线】这个工具,果然好使
数据如下
运行
这不就好了