QGIS 道路萃取:6 種方法與一個陷阱
發布於 更新於

要在 QGIS 中萃取道路,請安裝 QuickOSM,開啟「向量」→「QuickOSM」→「QuickOSM」,用鍵 highway 查詢畫布範圍,路網幾秒內就會以線載入。OpenStreetMap 稀疏的地方,還有五種方法可以把道路放上地圖:分割模型、已發布的國家資料集、手動數化、GRASS 細化和監督式分類。
有一個選擇要先做,它決定了您能用哪些方法。您不是在萃取道路,您是在 中心線 和 路面 之間二選一:中心線是一條走在路中間的線,帶著車道數和速限;路面是路緣到路緣的鋪面。路徑規劃需要線,排水和重鋪工程量需要面。下面一半方法給您前者,一半給您後者,兩者互轉都要多一步。
| 您的情況 | 方法 | 費用 |
|---|---|---|
| 有活躍 OSM 圖客的城市 | 1、QuickOSM | 免費 |
| OSM 還沒畫到的地方的最新影像 | 2、分割模型 | 免費額度,之後要訂閱 |
| 有國家道路資料集的國家 | 3、下載並裁剪 | 免費 |
| 少數幾條路,或修正手上的圖層 | 4、開追蹤手動數化 | 免費,但很慢 |
| 道路遮罩或掃描地圖 | 5、GRASS r.thin 接著 r.to.vect | 免費 |
| 瀝青特別突出的多波段影像 | 6、監督式分類 | 免費外掛,加數小時採樣 |
每個價格、版本和選單路徑都在 2026 年 9 月 3 日對照 QGIS 3.44 手冊 和各工具自家說明文件讀過。
方法 1:用 QuickOSM 拿 OpenStreetMap 道路
先花三十秒查 OSM,能省掉下面所有方法。QuickOSM 查詢 Overpass API,直接把結果丟進您的專案。
安裝 QuickOSM
「外掛程式」→「管理並安裝外掛程式」,搜尋 QuickOSM,安裝。
開啟快速查詢
「向量」→「QuickOSM」→「QuickOSM」,切到 Quick query 分頁。
設定鍵
鍵 highway,值留空就是全部道路等級。要縮小範圍就加值:residential、track、motorway。
限定範圍
選 Canvas Extent。不設邊界的整國查詢會在 Overpass 超時。
執行並篩選
線載入時會帶著 OSM 標籤。用 highway 篩選,有 surface 的就讀 surface。

標籤就是已測繪地區勝過任何偵測的原因。highway=track 告訴您那是農業便道,highway=unclassified 則是次要公共道路。這一頁沒有模型能告訴您這兩者的差別,因為偵測只給您形狀,OSM 給您的是有人命名過的形狀。依 ODbL 必須署名。
覆蓋率就是 OSM 停下的地方。在非洲鄉村、南亞,或多數城市的擴張邊緣,把 highway 線疊上最新影像,土路在圖裡看得清清楚楚,圖上卻什麼都沒畫。

適合: 該地區已有人測繪。
略過: 影像裡的道路在 OSM 圖層上看不到。
OpenStreetMap 有多完整?法國四個市鎮實測
2026 年 9 月 23 日,我們量測了四個法國市鎮:OpenStreetMap 涵蓋了 IGN 官方 BD TOPO 鋪面道路長度的 96% 至 98%,而在三個鄉村市鎮裡,IGN 的農路與林道有 20% 至 32% 在 OSM 中不存在,Microsoft 的免費偵測結果找到其中的 6% 至 12%。在像法國這樣測繪完整的國家,從影像萃取道路的難題是土路,而不是道路。
| 市鎮 | IGN 鋪面道路 | OSM 缺漏 | IGN 土路 | OSM 缺漏 | 其中 Microsoft 找到 |
|---|---|---|---|---|---|
| Villeurbanne,密集城區,15 km² | 280 km | 10.3 km(3.7%) | 15 km | 0.8 km(6%) | 0.3 km |
| Orgères-en-Beauce,開闊農地,15 km² | 27 km | 0.5 km(2.0%) | 27 km | 5.6 km(21%) | 0.7 km(12%) |
| Saint-Léonard-de-Noblat,樹籬農地,55 km² | 147 km | 3.9 km(2.6%) | 113 km | 36.4 km(32%) | 2.2 km(6%) |
| Gérardmer,山區森林,56 km² | 216 km | 3.8 km(1.7%) | 228 km | 44.7 km(20%) | 2.8 km(6%) |
在這四個市鎮中,Microsoft 的線涵蓋了 IGN 鋪面道路長度的 89% 至 95%,土路則為 17% 至 37%。

缺漏的土路位在哪裡,決定了影像能不能找到它們。我們在每個鄉村市鎮隨機抽出 20 段缺漏路段,逐一對照 IGN 正射影像檢視。在 Orgères-en-Beauce,7 段在地面上看得到土路,5 段落在空無一物的田埂上,沒有東西可描。在 Gérardmer,20 段中有 15 段位於針葉樹冠底下,任何由上往下看的模型都看不到。Saint-Léonard 介於兩者之間,7 段看得見,5 段在樹下。
另外還發現兩件事,會改變您的查詢方式。在 Gérardmer,IGN 另外 93 km 的土路在 OSM 裡標為 highway=path,所以只查 track 的 QuickOSM 查詢會漏掉它們:請把值留空。此外,OSM 也有 IGN 沒畫的東西,例如 Gérardmer 的 100 km 步道與山徑,以及 Villeurbanne 的 64 km 服務道路(停車場通道、院落、車道)。
我們如何量測
我們從 Géoplateforme WFS 取得 IGN BD TOPO troncon_de_route,在 2026 年 9 月 22 日與 23 日從 Overpass 取得每一條 OSM highway 路徑(即 QuickOSM 回傳的內容,不含人行道),並加上 Microsoft 2025 年 4 月 28 日釋出的資料,全部裁切到各市鎮範圍。每條線都切成 10 m 一段,當另一個資料集在 10 m 內沒有與它夾角在 45 度以內的線時,該段就算缺漏。改用 5 m 或 20 m 時,鋪面道路的缺漏仍低於 5%,鄉間土路則介於 15% 至 37%。四個市鎮不等於整個法國,BD TOPO 是參考基準而不是真值(Orgères 的 20 段中有 5 段在地面上什麼都沒有),正射影像的檢查也只是一個人對 60 張影像的判斷。
方法 2:分割模型
分割模型學過道路長什麼樣子,靠形狀和上下文越過了卡住方法 6 的相似物。我們自己做了一個,AI Segmentation。這一節講的是我們自己的工具。
從外掛管理員安裝
Windows、macOS 或 Linux 上的 QGIS 3.22 或更新版。不用 GPU,不用 Python 環境,不用抓權重。
畫出範圍
對畫布上已有的任何網格圖層畫範圍,從衛星場景到 WMS 都可以。
輸入關鍵字
車行道請輸入 road。parking lot、sidewalk 和 driveway 是不同的詞。分開跑,不然緊貼道路的停車場會連在一起。
篩選,需要線再轉換
跑完回來的多邊形帶有 label、class、score、area_m2 和 perimeter_m,以專案 CRS 計算。按 score 和面積篩選,再把面送進 GRASS v.voronoi.skeleton 取中心線。

輸出是路緣到路緣的多邊形,永遠不是中心線,所以要交線就得多做上面的骨架步驟。兩種雲端模式都會把影像送到歐盟境內的伺服器,只有小的本地模型留在您的電腦上。
樹冠會把面打斷,要手工接回去,橋面也一樣。潮濕瀝青和剛重鋪的色調差到會掉一段。我們不公布精度數字,因為數字隨您的影像而變。

講一個我們調參表裡的數字,因為它解釋了一個讓人覺得奇怪的結果。道路用的圖磚比建物粗,每張圖磚的地面下限是 512 m,建物是 128 m,因為只拿到一小片瀝青,模型會叫它停車場。模型要看到一段路,才讀得出那是路。
費用,讀於 2026 年 9 月 28 日。免費方案在自動模式上每月含 1.5 km² 地面,不用卡,雲端半自動模式每月另加 20 個物件偵測,在自己電腦上的半自動模式則完全不限量。Pro 提高到 100 km² 和 500 個物件,每月 €39,未稅。Mapflow 的道路模型按點數計價,每點 0.10 美元,每 km² 另加 5 點與影像費用,開頭送 250 點。
適合: 影像比地圖新,且道路多到手畫不完。
略過: OSM 已有路網,或影像不能離開您的電腦。
方法 3:已發布的道路資料集
可能已經有人跑過偵測,並把結果公開了。
Microsoft Road Detections 涵蓋 235 個國家、5,420 萬公里道路,從 Bing Maps 航照影像探勘而來,以中心線形式、依世界區域分檔,依 ODbL 釋出。在上面量測的四個法國市鎮中,它涵蓋了約十分之九的鋪面道路公里數,土路則約五分之一。
Meta 透過 Rapid 編輯器 發布自家 AI 生成的道路。原本打包它們的 Daylight 發布版已於 2024 年 5 月終止,所以現在實際拿到的管道是 Rapid。
有國家測繪單位的地方,兩者都比不上國家資料。法國發布 BD TOPO,其中的 Troncons de route 圖層在 Etalab 2.0 下達到公尺級精度,遠勝探勘資料集的粗略套合。英國透過 OS Data Hub 免費發布 OS Open Roads,每年四月和十月更新。
問題在時間。偵測資料集是探勘當時影像的快照,沒有一個知道去年春天封了哪條路。
適合: 今天下午就要全國覆蓋,且時間夠用。
略過: 工作是資料集建成之後的變化。
方法 4:手動數化,開著追蹤畫
五十條以下的道路,用畫的還是最快,只要搞懂追蹤到底在跟什麼,QGIS 真的幫得上忙。
切換編輯模式,選「加入線圖徵」,再在接合工具列上啟用「追蹤」工具,或按 T。接合一個頂點,再移到第二個頂點,QGIS 就會沿既有圖徵邊在兩點間建立最短路徑。展開追蹤圖示並設定「偏移」,就能沿這些圖徵平行數化,而不是貼著畫。
有兩個行為常讓人意外。圖幅裡圖徵太多時,追蹤會自己關掉,放大後又回來。要畫自由曲線,按 R 改用串流數化。
適合: 五十條以下的道路,或對照您信任的圖層做修正。
略過: 面對整區沒畫的土路。
方法 5:GRASS r.thin,再 r.to.vect
請在投影 CRS 下工作。下面有兩個步驟要用圖層單位取寬度,用度為單位的寬度沒有意義。
這是唯一直接給您中心線的方法,這也是它到 2026 年還在用的原因。餵給它一個道路是一種值、其他都是一種值的網格資料:紙圖經閾值化的掃描,或方法 2、6 來的遮罩。
r.thin 把每條筆畫縮到一個像素寬,這條像素鏈就是中心線。r.to.vect 以圖徵類型 line 把它轉成幾何。GRASS 手冊提醒它會在路口產生過多節點和懸空短刺,所以要預留清理時間:按長度刪掉短刺,再把該連成一條的段合併。
GRASS 隨多數 QGIS 安裝包一起來,不用另買。它也是把方法 2 的面轉成線路網的那一步,是我最常用的組合。
適合: 手上有乾淨的道路遮罩或乾淨的掃描,且要的是線。
略過: 輸入是彩色照片。
方法 6:監督式分類
先把像素分類,再把道路類向量化。Semi-Automatic Classification Plugin 是標準工具,作者 Luca Congedo。9.0.4 版需要 QGIS 3.99,也就是 QGIS 4 系列,所以在 QGIS 3.x 上,管理器給您的是 8.5.0。dzetsaka 做同樣的事,介面更小。
您在道路像素和其他每個地物類上畫訓練區,跑 Maximum Likelihood 這類分類器,再把道路類送進「影像」→「轉換」→「影像向量化(影像轉向量)」。網格轉向量指南 講了後半段,包括修掉向量化留下的階梯邊的演算法。
瀝青和周圍真的不同時才有效,多光譜波段有幫助。遇到長得很像的就會倒,因為分類器只比像素值,不懂形狀:灰屋頂、乾河床、光禿田邊全都會掉進道路類。訓練樣本要預留幾小時,且下一個場景要重畫。
適合: 有多光譜波段,且道路在其中突出。
略過: 道路和屋頂同色,也就是多數城市。
重點回顧
這一頁的每個方法都會被四件事打斷,花多少錢都一樣。住宅街道上的樹冠擋住了往下看的任何感測器,所以結果總是斷成幾截。土路和旁邊田地的顏色一樣,這正是未鋪面道路恰恰在最需要成圖的地方缺失的原因。
另外兩個是形狀問題。河流、乾河床和鐵路都是細長特徵,任何基於像素的方法都會把它們丟進道路類。橋面和隧道口恰恰在路網最需要連通的地方把路面切斷。
先查 OpenStreetMap,因為那三十秒決定其他五個方法值不值得開。在測繪完整的國家,剩下要找的多半是土路,而且其中許多位在樹下。
先決定要中心線還是面,再選方法,不要反過來。路徑規劃要線,面積計算要多邊形,互轉都要多一步。
自動追蹤跟的是既有向量圖徵,永遠不是底下的影像。r.thin 要的是二值網格資料,永遠不是照片。
樹下的道路在這一頁每個方法裡都會斷掉,花再多錢也修不好。
方法 2 的面再過方法 5,就得到不用手動數化的中心線路網。
常見問題
QGIS 能自己從衛星影像萃取道路嗎?
無法自動完成。QGIS 核心只能手動數化,以及把您已分類好的網格資料向量化。要從照片拿道路,需要一個外掛:分割模型,或自己訓練的 SCP 這類分類器。
道路萃取給的是線還是多邊形?
兩種都有,看方法決定。OSM、國家資料集、已發布偵測和 GRASS r.thin 給線。監督式分類和分割模型給面,因為影像上看到的就是面。GRASS v.voronoi.skeleton 可以互轉。
樹下的道路為什麼總是斷的?
往下看的感測器都看不穿樹冠,所以缺口在軟體動手之前就已在資料裡。進入編輯模式,用接合把幾段接起來。
OpenStreetMap 的道路路網有多完整?
就測繪完整國家的鋪面道路而言,接近完整:在我們於 2026 年 9 月量測的四個法國市鎮,OSM 涵蓋了 IGN 鋪面道路長度的 96% 至 98%。缺口在土路,鄉村市鎮裡 IGN 的土路長度有 20% 至 32% 缺漏。放眼全球,2017 年的一項研究估計 OSM 的道路網約完整 83%。
有方法找得到未鋪面土路嗎?
部分可以。土路和旁邊田地同色,所以分類通常漏掉,偵測模型只找得到較寬的。有圖客到過的地方,OSM highway=track 最可靠,問題是,最需要它們的地方恰恰沒人畫。
道路萃取需要多高的影像解析度?
能把路和旁邊分開就行。高速公路在粗衛星場景就看得到;樹下的住宅小巷要 20 cm 正射影像或更好。選定方法前,先拿自己的影像在免費額度上試。
在 QGIS 裡萃取道路免費嗎?
方法 1 和 3 到 6 安裝免費、執行免費。只有雲端分割模型收費,這裡提到的兩家都有免費額度。
可以開啟追蹤,沿著影像上的道路描嗎?
追蹤完全不看影像。QGIS 3.44 手冊寫得很清楚:它是沿著既有向量圖徵的邊建立最短路徑。在只有裸衛星影像的地方,沒有東西可跟,這個工具什麼都不會做。只有當您手上已有地籍或部分路網,想讓新幾何自動貼齊它們時,它才有用。
可以對航照影像直接執行 GRASS r.thin 嗎?
r.thin 需要一個道路是一種值、其他都是一種值的網格資料。直接丟彩色照片給它,它只會按像素值相近去細化,細出來的不是道路。這是個很強的工具,只是放早了一步:它屬於分類或偵測之後,而不是之前。
網格轉向量指南 講了方法 6 的向量化半段,建物輪廓指南 走完篩選步驟。方法 2 的偵測再取骨架這條流程,若在多個圖磚上變得重複,AI Agent 能在 QGIS 中依一句指令執行同樣的步驟。QGIS AI hub 並排比較各外掛。
中萃取道路,請安裝 QuickOSM,開啟「向量」→「QuickOSM」→「QuickOSM」,用鍵 

