以下為製作離線地圖資料庫 BigPlanet_maps.sqlitedb,供 Android 手機程式Big Planet Tracks或RMaps使用的詳細步驟:
  1. 安裝Java 執行環境(JRE 或 JDK,至少為 JRE v1.6.0_14 或更高版本)。
  2. 下載並解壓縮Mobile_Atlas_Creator_1.7_SQLite.zip(Official Edition + SQLite Libs + Settings for "Big Planet SQLite" format)。
  3. 將對應您 OS 平台的 libsqlite_jni 複製至程式根目錄 (Mobile_Atlas_Creator.jar 所在目錄)。
  4. 在 Windows 平台請執行 Mobile Atlas Creator.exe (Linux 平台請執行 start.sh)。
  5. 執行程式後,使用滑鼠左鍵圈選下載範圍,右鍵移動地圖。
  6. 選擇地圖縮放層級 (Zoom Levels) 後,點擊 Add selection 按鈕。
  7. 確認 Map Source 為 Google Maps (預設值,也可以選其他種類地圖)。
  8. 確認 Atlas settings 的 Format 為 BigPlanet SQLite (預設值)。
  9. 點擊 Create atlas 按鈕,開始下載地圖。
  10. 下載完成點擊 Open Atlas Folder 按鈕,將看到 BigPlanet_maps.sqlitedb 地圖資料庫。
  11. 將 BigPlanet_maps.sqlitedb複製至 Android 手機的 SD 卡目錄 "/sdcard/RMaps/maps/Big Planet Tracks.sqlitedb" (可以用其它檔名,只要副檔名正確即可)。
  12. 打開手機 GPS 功能,執行 Big Planet Tracks 或 RMaps 後,地圖將移動至您所在位置 (假如您已成功從網路或 GPS 衛星接收到經緯度座標)。

[問題集錦] 8/21 update
  • RMaps 需要手動至設定裡"啟用"新增的離線地圖資料庫,方能選擇該離線地圖。
    • More => Settings => User defined maps =>[choosea 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 的錯誤訊息時:
    • 請依據您安裝的是 32-bit JDK 或 64-bit JDK,來替換相對應的 libsqlite_jni 版本。
    • 若還是有錯誤,請安裝vcredist_x86.exe或是vcredist_x64.exe(說明)
  • Mobile Atlas Creator 發生記憶體不足 (Out of memory) 時:
    • Linux 平台,請修改檔案 start.sh,加大 Java VM 的最大可用記憶體如 -Xmx1536M 或更大,然後執行 start.sh
    • Windows 平台,請新增檔案 start.cmd,加入以下內容至同一行後執行 start.cmd
      start javaw -Xms64M -Xmx1536M -jar Mobile_Atlas_Creator.jar
    • 如果加大記憶體依舊無效,請選擇較小地圖範圍或較少縮放層級,然後分次下載。
  • 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
  1. 每次執行 Create atlas 時,下載的地圖都會放一份至 "\tilestore\db-Google Maps\" 目錄下的 BerkelyDB 資料庫中。(此例為下載Google地圖)
  2. 之後分階段將圖檔從 BerkelyDB 儲存到路徑為 "\atlases\BigPlanet_maps.sqlitedb" 的 SQLite 資料庫中。(因為 Android 手機預設只認得 SQLite 資料庫格式)
  3. 下一次重新執行 MOBAC 程式,圈選好地圖範圍並執行 Create atlas 時,MOBAC 會先檢查 BerkelyDB 內是否已有同樣地圖區塊: (例如第一次圈選台北,第二次圈選台灣,則部份範圍重複)
    3.1 若地圖區塊沒有重複的話,就直接下載該地圖區塊 (*.png)。
    3.2 若地圖區塊重複的話,再檢查日期,若網站的較新,則下載地圖區塊並存入 BerkelyDB,日期一樣則不會下載地圖。(即不會浪費網路流量的意思)
  4. 同第2步驟,分階段將圖檔從 BerkelyDB 儲存到 SQLite 資料庫。
  5. (之後第3、4步驟一直重複)

更多相关文章

  1. Android(安卓)用官方SDK实现第三方(qq、微信、微博)登录
  2. Android(安卓)MTK平台修改开关机动画和开机logo【转】
  3. Gerrit跨平台合并提交
  4. 跨平台的多线程断点续传下载库
  5. 本文是独立应用商店GetJar创始人兼CEO Ilja Laurs对2012年移动领
  6. 极光小课堂 | 极光推送集成解决方案
  7. 移动终端平台之争! iOS、Android还是wp7?
  8. 极光推送集成解决方案
  9. Android4.0 sdk离线安装

随机推荐

  1. Android(安卓)应用的自动升级、更新模块
  2. [置顶] 【Android归纳决】Asynctask与Han
  3. 如何将Android默认的Camra程序导入到ecli
  4. 第1章 Java基本概念及环境配置——FAQ1.0
  5. 【Android自助餐】Handler消息机制完全解
  6. 精通android2第一章学习
  7. Android数据库ORMlite框架翻译系列(第一章
  8. Android(安卓)网络处理
  9. Android 技术-- 图形系统详解
  10. Android开发人员必须掌握的10 个开发工具