← 回找工具
應用案例

一條路線在資料裡不是一條線

地圖上看起來連續的一條登山路線,抓下來是五段接起來的、共 956 個座標點。段的順序和方向都不保證——算總長、標起點、分主線與變體,都得先數清楚它有幾段。

2026-09-17 · 作者整理:Lucas

我有 6 支作品要在地圖上畫登山路線。作法看起來都一樣:拿一條路線的資料,把座標接成線,畫上去。

聽起來是一件很單純的事——一串座標而已。實際抓下來才發現,它根本不是一串座標。

抓一條路線,回 200
──────────────────────────────────────────
  你看到的            資料裡的
  一條連續的線   →    5 段
  一串座標點     →    956 個點,分散在那 5 段裡
──────────────────────────────────────────
  段的先後順序與每段的方向,都不保證

它是一份名單,不是一條線

2026-09-17 實測:用 OpenStreetMap 主 API 抓一條路線的完整結構,回 HTTP 200。

回來的東西不是一條線,是一個集合:這條路線由 5 段組成,5 段加起來共 956 個座標點。

為什麼要切成段?因為那些段本來就各自存在——它們是實際的路徑,一段可能同時被好幾條路線用到。所謂「一條路線」,是一份把這些段列在一起的名單。

地圖上那條連續的線是畫出來的結果,不是資料原本的樣子。

這件事會改變三個地方的寫法

算總長度。 要每一段各算一次再加起來。只算第一段不會報錯,只會給你一個小很多的數字,而那個數字看起來完全正常。

標起點和終點。 不能假設名單上第一段的頭就是起點、最後一段的尾就是終點。段在名單裡的排列順序不保證是走的順序,每一段自己的方向也不保證跟行進方向一致。要靠頭尾座標對得上不對得上去判斷,不能靠位置。

主線和變體要分開存。 長程路線幾乎都帶著替代路段、逃生路線、接駁岔路。它們在資料裡跟主線是平等的,全部倒進同一組座標畫出去,線會互相跳來跳去,看起來像資料壞掉。

6 支作品吃的是同一套結構

這 6 支的路線來自不同國家、不同資料來源、長度差很多,但拿回來的形狀一樣:一份段的名單。

所以處理這件事的程式只需要想通一次。第一支花掉最多時間,是因為在搞懂這個結構;後面幾支是把同一套骨架換上不同的資料。

可以拿去改的起點

拿到一條路線之後,第一件事不是畫,是數:

先數,再決定怎麼接:

1. 印出這條路線由幾段組成
2. 逐段印出每段有幾個座標點,順便看有沒有
   哪一段只有一兩個點(那通常是標記,不是路)
3. 印出每段的頭座標與尾座標
4. 比對前一段的尾跟下一段的頭是不是同一點;
   不是的話,記下來
5. 把第 4 步記下來的缺口列成清單

缺口清單是空的,照名單順序接起來就對了。
缺口清單不是空的,那幾段要自己決定順序或反轉。

先畫再回頭查,你會分不清是資料本來就斷,
還是你接錯了。

站內延伸

來源: OpenStreetMap 主 API 的 relation full 端點,取回一條路線的完整結構後,逐段計數 way 與座標點,2026-09-17 實測。

會出事的地方,常常是你以為不用確認的那一步。「一條路線就是一串座標」這個假設不會讓程式當掉,它只會讓總長度短一截、起點標在中間、幾條線纏在一起——而這三件事你都得自己看出來,沒有人會通知你。

← 看更多找觀念文章
取得 AI 實戰工具與更新

之後會不定期整理:新方法、指令包(Prompt Pack)、Checklist 與模板。免費、無廣告;送出後會收到一封確認信,點了連結才算訂閱成功,之後每封信都附一鍵退訂。