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