iT邦幫忙

0

關於PyQgis 找尋路徑

  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20220802/20148353v8riJnK1P0.jpg

目前在學Pyqgis
想實現的功能是給一個起點跟結束start=A end=H
line_dict={
'A':[['B','C']],
'B':[['A','C']],
'C':[['A','B'],['E','F','G']],
'E':[['C','F','G'],['I','H']],
'F':[['C','E','G']],
'I':[['H','E']],
'H':[['I','E']],
'G':[['E','F','C']]}
每條線是dictionary value為相連的線id
可以順利找到路徑 但是會有些bug
走過的線都加進去
紅色的圈是交接點 不需管黃色的點

start,end=A,H
road,tmp=[start],start

layer.removeSelection()

while tmp!=end:
    for i in line_dict[tmp]:
        for j in i :
            print(f"開始點{road[-1]} 有{len(i)}個交接點:{i}")
            if j not in road:
                
                
                road.append(j)
                tmp=j

print(f"最終路徑為:{road}")
layer.select(road)

起點為A 終點為H
提供思路也行 小弟再來思考看看 ~ 感謝大大
output 為A-->C-->E-->H

win895564 iT邦研究生 5 級 ‧ 2022-08-02 14:18:09 檢舉
更正了一下是A-->H
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答