2016年2月18日 星期四

離線地圖日記之一: JOSM 新手入門

josm 重要工具按鈕及資訊面板 想要繪製私房地圖嗎? 可以用 umap 雲端地圖。 但如果不想把資料上傳到雲端, 或是經常需要離線繪圖看圖呢? 在手機上, 可以用 osmand 離線地圖 來標示 我的最愛 (點); 但在桌機筆電上面呢? 或是進一步需要繪製路徑 (線) 或區域 (面) 呢? 第一個選項是自架 uamp, 第二個選項是學習 QGIS GRASS 之類的專業地理資訊系統 (GIS), 第三個選項則是採用本文要介紹的 JOSM。 它原本是要讓大家共同參與編輯 OSM 用的離線編輯器; 但對於沒打算參與編輯的 OSM 麻瓜而言, 它也勉強可供離線編輯個人地圖。 事實上圖友已經完成部分的 JOSM 入門教學中文翻譯; 不過我還是想從純用戶 (非貢獻者) 的角度寫一篇任務導向式的教學文。

地圖工具 可以離線? 可標示點? 可標示線與面? 硬體平臺?
OSM 官網 所有
現成雲端 umap 若自架 v v 所有
osmand v v 行動裝置
josm 勉強 v v 桌機筆電

一、 安裝

Windows 用戶請參考上述 JOSM 入門教學連結。 以下步驟主要針對 ubuntu 或 debian 系列的用戶。 (摘要自 「下載安裝英文教學」)

  1. 在 /etc/apt/sources.list.d/ 目錄下建立 josm.list 文字檔, 加入一句 deb https://josm.openstreetmap.de/apt alldist universe。 若是 ubuntu 系列的版本, 可以用更精確的版本代號取代 alldist。 例如我用 grep VERSION /etc/os-release 查看得知我的 lubuntu 15.04 的代號是 'Vivid Vervet' , 所以直接下: echo 'deb https://josm.openstreetmap.de/apt vivid universe' > /etc/apt/sources.list.d/josm.list (只取第一個字, 通通變小寫)。
  2. wget -q https://josm.openstreetmap.de/josm-apt.key -O- | apt-key add - 表示你信任 josm 開發者, 敢安裝他們所提供的軟體。
  3. apt-get update 更新套件清單。
  4. apt-cache policy josm 確認系統第一優先從 josm.openstreetmap.de 下載 josm 套件。
  5. apt-get install josm 安裝。

其實 debian 及 ubuntu 本身也有收集 josm 套件; 但從 josm 官網下載到的版本比較新。

二、 秀底圖 & 看見臺灣

挑選底圖 為 OSM 圖客所寫的 JOSM 中英教學文, 幾乎都從編輯開始講起; 但麻瓜當然要從看圖開始學起啊! 在 Imagery 選單底下, 有好幾張底圖可挑。 對於開拓新領域的圖客而言, 各種衛星照片比較好用; 但對於 (麻瓜會查看的) OSM 上面已有基礎地圖的大部分區域來說 (例如臺灣的都市與道路可及的大部分鄉村) 選 OpenStreetMap (Standard Layer) 比較容易看, 也可以避免對齊誤差的麻煩 -- 反正我們就是跟 OSM 官方地圖對齊, 要錯大家一起錯 :-) (就算你開啟 josm 是要編輯貢獻回官網, 像我這種等級的初階圖客也是這樣做, 這樣比較方便高階圖客整體調整。) 所以選擇之後, 視窗上方出現 "... might be misaligned" 這樣的訊息, 可以直接按叉關掉。 (可能要拉大視窗才按得到右上角的叉)

地圖初次載入, 只看到一片汪洋, 因為我們位於經度零度、 緯度零度的非洲西岸外海。 這雖然有點麻煩, 但也意味著沒有人在追蹤我們現在的位置 :-) 滑鼠滾輪向下轉以便拉遠。 再用滑鼠右鍵移到臺灣、 滾輪向上轉就可以拉近放大臺灣。 注意: 此時需要網路連線!

三、 載入私房地圖、 閱讀圖資

功能較多的任何 (文字/圖片/聲音/影片/...) 編輯軟體, 我覺得應該先從瀏覽現成的簡單作品、 解讀檔案資訊玩起, 比較不會被嚇到。 所以就請先下載 thsr-tc.osm 吧。 在 josm 裡面用 File => Open 功能把它讀進來。

開啟之後, 畫面瞬間移動到臺中高鐵站週邊; 底圖慢慢地從網路載入。 最前面說 josm 「勉強」 可當做離線地圖, 原因就在這裡。 你必須在有網路的時候預先把離線時想看的地方 (包含不同的縮放解析度) 都先逛過一遍, 讓它先把底圖下載到你的電腦裡。 注意右邊出現了一個新的面板區塊。 把垂直分隔線往左拉, 面板區看清楚一點。 最上面的面板顯示目前兩個圖層: 剛載入的小檔案 thsr-tc.osm 以及底圖 OSM Standard layer。 可是怎麼分辨資料檔跟底圖啊? 請點 「OSM Standard layer」 旁邊的眼睛, 暫時不顯示這個圖層。 主畫面全黑, 剩下三個小藍點, 這樣很清楚了吧 ^_^ 其實只要拉近到某個程度, 小點就會變成小圖示。

先確認最左側的工具按鈕那一直排中, 被選到的是位於最上方的 「選擇、移動、縮放和旋轉物件」 (而不是其他可怕的修圖編輯工具按鈕)。 下拉滑鼠滾輪稍微拉遠, 再用滑鼠左鍵把三個點全部框起來, 變成三個小紅點。 滑鼠左鍵在任意空白處點一下, 又變成三個小藍點。 按 ctrl-a 又變成三個小紅點; 按 ESC 又變成三個小藍點。 剛剛是 「選取物件」 的練習。 也可以按著 shift 鍵不放, 逐一點選你要的物件。

當你選取不同物件時, 右側標示 「選取區域」 的面板也會跟著列出不同的清單。 如果你想找某個東西, 可是圖上看不清楚, 可以全選, 然後從這個面板看文字挑選。 在 「選取區域」 面板上點其中一個物件, 在主畫面上它就會變成鮮明的紅方塊。

但是我們菜鳥目前不太需要同時選好幾個物件。 請逐一點選個別物件。 注意右側的 「標籤」 面板出現了比較詳細的文字資訊。 這些標籤 (tags), 再加上座標, 就是隨著每個點真正儲存在 *.osm 裡面的文字資訊。

順便一提: 左邊直排工具按鈕的 「雙右箭頭」 之下, 就是右側每個面板的開關。 不過我們菜鳥先看圖層、 標籤、 選取區域(或選取物件) 這三個面板就很夠了。 「關係」 面板其實可以關掉。

四、 編輯節點

那... 就不客氣, 開始改圖囉! 點一下左排由下往下第二個工具按鈕 「繪製節點」。

在畫面上隨意豪邁帥氣到處亂點, 畫出線條及多邊形。 一筆畫連線看起來永遠斷不了; 其實只要第二次點到 「目前路徑上任何一個點」, 線就停了。 所以: (1) 同一位置點兩次, 就產生了一個點物件 (2) 最後一點點在出發點上, 就產生了一個多邊形。

要刪掉也很簡單: 改用 「選擇、移動」 工具、 選取物件、 按 Del 鍵就刪掉了。 或是多按幾次最上一排黃色左箭頭按鈕 「上一步」 也可以倒退到原始狀態。

預設的各種圖徵 今天先不研究線條, 我們先把所有的線條給刪了吧。 隨便選取一個節點, 我們來更改它的屬性。 從上方選單列 「Presets」 隨便挑一個預設的 圖徵。 例如你想標示一家通訊行, 可以找到 「Presets=>商店=>電子=>行動電話」。 然後出來一個對話框, 看起來有很多欄位可以填; 不過我們是菜鳥! (可以不必太認真意思) 所以只填名字就好。 按下 「套用預設組合」, 如果你的圖拉得夠近的話, 就出現手機的圖示了!

預設組合太複雜, 不知道你要的商店/物件類型在哪裡嗎? 直接按 F3 功能鍵, 用搜尋的比較快。 關鍵字打中文或英文都可以哦!

五、 存檔

今天先到這裡。 選 File => 離開。 此時 josm 會問我們 (1) 要不要上傳分享給全球網友? (2) 要不要回存 thsr-tc.osm? 如果你剛剛是亂畫的, 當然就都不存, 按 「立即結束」。 如果你剛剛是認真的呢? 我們先前少做一個重要的動作: 把官網關於臺中高鐵站附近既有的圖資抓下來。 所以恐怕也不適合上傳。 取消 「上傳」 的勾、 只保留 「存檔」 的勾, 然後按 「結束前執行動作」。

可以用 vim 或 nano 等等文字編輯器打開 thsr-tc.osm 來看, 會看到你剛剛新增的物件。 如果你剛剛是認真的, 那麼這就是你的離線私房地圖的重要資料, 請備份好囉。 怎麼樣? 離線繪製私房地圖, 其實蠻簡單的吧?

離線地圖日記系列文章:

  1. 離線地圖日記之一: JOSM 新手入門
  2. 離線地圖日記之二: JOSM 畫線 (路徑) 眉角
  3. 離線地圖日記之三: 用 osmtracker 記錄、 gpsbabel 編輯軌跡

2 則留言:

  1. OSM離線編輯的話,Merkaartor也可以拿來用用看 :D

    回覆刪除
  2. 有問有android studio應用josm實作的範例嗎

    回覆刪除

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