[離線地圖製作軟體]
專業的離線地圖製作軟體
TrekBuddy Atlas Creator (TAC) 從 2010 年起釋出全新版本,重要更新條列如下:
- 改名為 Mobile Atlas Creator (MOBAC),以反映該程式能下載各種線上地圖,並儲存為不同格式的離線檔,讓不同的手機程式與 GPS 裝置使用的特性。
- 下載的離線圖檔 (tiles) 不再暫存於硬碟中,而是儲存於資料庫 (BerkelyDB),節省了相當多的硬碟空間。 (註)
- 舊版 tilestore 目錄內的圖檔 (tiles) 無法直接存入新的資料庫,故請將 Mobile Atlas Creator 解壓縮至新目錄。
- 舊版的設定檔 (tac-profile*.xml) 可以沿用,直接複製至 Mobile Atlas Creator 目錄內即可。
註:如果您是 Windows 用戶,建議用 MOBAC 取代舊的 TAC,因為 PC 下載地圖時的暫存圖檔(PNG)可能會超級多(數十萬),TAC 直接將這些暫存圖檔放在 "tilestore\Google Maps" 目錄下,當您不小心點進那個目錄,Windows 檔案總管會被咬住,將來要刪除那個目錄時也會等超級久;相較之下,新版 MOBAC 將暫存圖檔存進了資料庫,則沒有上述問題。

圖:Mobile Atlas Creator 1.7
[Mobile Atlas Creator 使用教學]
以下為製作離線地圖資料庫 BigPlanet_maps.sqlitedb,供 Android 手機程式
Big Planet Tracks 或
RMaps 使用的詳細步驟:
- 安裝 Java 執行環境 (JRE 或 JDK,至少為 JRE v1.6.0_14 或更高版本)。
- 下載並解壓縮 Mobile_Atlas_Creator_1.7_SQLite.zip (Official Edition + SQLite Libs + Settings for "Big Planet SQLite" format)。
- 將對應您 OS 平台的 libsqlite_jni 複製至程式根目錄 (Mobile_Atlas_Creator.jar 所在目錄)。
- 在 Windows 平台請執行 Mobile Atlas Creator.exe (Linux 平台請執行 start.sh)。
- 執行程式後,使用滑鼠左鍵圈選下載範圍,右鍵移動地圖。
- 選擇地圖縮放層級 (Zoom Levels) 後,點擊 Add selection 按鈕。
- 確認 Map Source 為 Google Maps (預設值,也可以選其他種類地圖)。
- 確認 Atlas settings 的 Format 為 BigPlanet SQLite (預設值)。
- 點擊 Create atlas 按鈕,開始下載地圖。
- 下載完成點擊 Open Atlas Folder 按鈕,將看到 BigPlanet_maps.sqlitedb 地圖資料庫。
- 將 BigPlanet_maps.sqlitedb 複製至 Android 手機的 SD 卡目錄 "/sdcard/RMaps/maps/Big Planet Tracks.sqlitedb" (可以用其它檔名,只要副檔名正確即可)。
- 打開手機 GPS 功能,執行 Big Planet Tracks 或 RMaps 後,地圖將移動至您所在位置 (假如您已成功從網路或 GPS 衛星接收到經緯度座標)。
[問題集錦] 8/21 update
- RMaps 需要手動至設定裡"啟用"新增的離線地圖資料庫,方能選擇該離線地圖。
- More => Settings => User defined maps => [choose a map] => Enabled map
- RMaps 開啟後持續看到 loading 底圖時。
- 首次使用新的離線地圖,會花一段時間建立索引,時間長短取決於資料庫大小。
- 若很久之後還是持續看到 loading 表示該"縮放層級"的"區域"沒有離線圖資,並非真的在讀取。
- 很多新手這裡卡關,特別舉例說明。
- Q:我人在台灣,做的是義大利的離線地圖,手機 RMaps 一直出現 loading 的小圈圈,一個小時過去了還是沒顥示,但之前用台灣離線地圖測試時是可以的??
- A:RMaps 顯示離線地圖是根據經緯度座標來定位地圖的。
假設您人在台北測試,GPS 抓到的經緯度是台北,所以 RMaps 可以顯示台灣離線地圖;同理,人在台北不會抓到義大利經緯度,自然無法顯示義大利離線地圖。
- 解決方法:
1. 增加 Zoom Levels (縮放層級) 0-7 的世界地圖至義大利離線地圖資料庫裡,在台灣測試時就可以先縮小至 level 1 的世界地圖,將地圖手動移至歐洲義大利,再放大至您抓取的義大利地圖,檢查地圖是否正確。
2. 假設義大利離線地圖資料庫檔名為 Google.Maps.Italy.sqlitedb,請改名為 BigPlanet_maps.sqlitedb 並移回 \atlases\ 目錄裡,再次圈選 0-7 的世界地圖並執行 Create atlas,世界地圖就會合併至 BigPlanet_maps.sqlitedb,需要的話再改名回 Google.Maps.Italy.sqlitedb,這份資料庫就包含義大利與世界地圖了。
3. 一般來說,不管您下載哪個區域的地圖,建議您同時下載 0-7 的世界地圖,這個範圍圖資小於 50 MB,佔不了太多空間,卻可以避免很多奇怪問題,特別是您使用 Big Plant Tracks 的話,請照辦。
- Mobile Atlas Creator 點擊 Create atlas 按鈕,發生 SQLite not available 的錯誤訊息時:
- Mobile Atlas Creator 發生記憶體不足 (Out of memory) 時:
- Mobile Atlas Creator 下載發生 "Error - tiles are missing - do you want to continue anyway?" 時:
- 請選擇 yes,然後勾選 Ignore download errors and continue automatically 即可。
[Mobile Atlas Creator 運作原理] 8/21 add
- 每次執行 Create atlas 時,下載的地圖都會放一份至 "\tilestore\db-Google Maps\" 目錄下的 BerkelyDB 資料庫中。(此例為下載Google地圖)
- 之後分階段將圖檔從 BerkelyDB 儲存到路徑為 "\atlases\BigPlanet_maps.sqlitedb" 的 SQLite 資料庫中。(因為 Android 手機預設只認得 SQLite 資料庫格式)
- 下一次重新執行 MOBAC 程式,圈選好地圖範圍並執行 Create atlas 時,MOBAC 會先檢查 BerkelyDB 內是否已有同樣地圖區塊: (例如第一次圈選台北,第二次圈選台灣,則部份範圍重複)
3.1 若地圖區塊沒有重複的話,就直接下載該地圖區塊 (*.png)。
3.2 若地圖區塊重複的話,再檢查日期,若網站的較新,則下載地圖區塊並存入 BerkelyDB,日期一樣則不會下載地圖。(即不會浪費網路流量的意思)
- 同第2步驟,分階段將圖檔從 BerkelyDB 儲存到 SQLite 資料庫。
- (之後第3、4步驟一直重複)
[延伸閱讀]