2025年1月1日 星期三

製作你自己的某路線公車站牌地圖

這是我在中興大學上通識課要用的講義。 長期讀者請忽略這篇 :-)

  1. 用 putty 登入上課用的 linux 帳號。
  2. tcbus-73.json下載到自己的帳號: wget https://ckhung.github.io/a/m/24/tcbus-73.json
  3. (如果想改畫其他路線才需要做這一步; 要畫 73 號的同學請略過此步) 到 這一頁 的 CityBus 底下, 找到 「取得指定[縣市],[路線名稱]的市區公車顯示用路線站序資料」、 選取 Taichung、 選取路線、 取消 「取前幾筆」、 按下 「Execute」。 等它回應, 即可從 「respond body」 下載你要的 json 檔。
  4. 查看 tcbus-73.json 檔案內容: cat tcbus-73.json 看起來有點亂。 用 jq 指令排版一下, 比較容易讀: jq . tcbus-73.json 可以看到這是一個很大的陣列 (array) , 其中每個元素是一個關聯陣列 (associative array) (又稱 dictionary)。 這個關聯陣列的筆記錄由兩部分構成: 它的鍵 (key) 是 "Stops", 它的值 (value) 是一長串站牌資訊所構成的陣列。 另一個 json 檔範例: scatplot 的 config.json圖解
  5. 下指令轉檔: zq -j 'this[2].Stops | over this | [StopName.Zh_tw, StopPosition.PositionLon, StopPosition.PositionLat]' tcbus-73.json | perl -pe 's/[\[\]"]//g' > 73.csv
  6. 用 winscp 把 73.csv 抓回你的 windows 電腦。
  7. 用 geany 或 notepad++ 編輯 73.csv , 在最上面補上欄位名稱, 最終長得像這樣:
    name,longitude,latitude
    統聯轉運站(站內),120.622109,24.179384
    福安里(臺灣大道),120.623191,24.178939
    秋紅谷(專用道),120.63887900000002,24.169165000000007
    ...
    
  8. google my maps 建立一個新的個人地圖。
  9. 點選 「匯入」
  10. google 很聰明, 會自動選取 longitude 跟 latitude 這兩個欄位當作經緯度座標。
  11. 手動指定要以 name 欄位作為地圖上標記的名稱。
  12. 上傳成功之後, 圖上會顯示 73 路公車所有站牌。 可以更改地圖名稱並改選自己喜歡的標記顏色。
  13. 可以重複上述步驟產生很多條路線的 csv 檔, 再把每個 csv 檔匯入同一地圖的不同圖層 (layer) 疊在一起, 看起來很有成就感!

作業: 註冊 OpenStreetMap 的帳號、 練習使用 umap、 改成 把資料上傳到 umap

沒有留言:

張貼留言

因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。