熱門文章

2009年8月2日 星期日

Android 離線地圖系列(四):Big Planet TW 的 SQLite 離線地圖資料庫之檔案大小分析


離線地圖製作器 TrekBuddy Atlas Creator 1.2 beta 1 (android-map.blogspot.com Ver. 1) 除了具備產生 SQLite 地圖資料庫 (BigPlanet_maps.sqlitedb) 的基本功能外,更具備自動將程式分次執行所下載的不同區域地圖檔,都新增至同一個資料庫的貼心功能。

例如首次執行上述程式時,設定抓取 Zoom 0-15台灣地圖,產生 BigPlanet_maps.sqlitedb
第二次再執行上述程式時,設定抓取 Zoom 13-17北台灣地圖,只要沒把原來產生的 SQLite 地圖資料庫 (也就是BigPlanet_maps.sqlitedb) 移走,則 Zoom 16-17 的地圖檔會新增至同一個 SQLite 地圖資料庫;Zoom 13-15 的地圖檔則檢查後知道已經存在資料庫,就不會再次新增至資料庫。(換句話說,同一個資料庫可以一直增加不同區域的地圖,但以此例來說,不會有兩份 Zoom 13-15 的地圖檔同時存在資料庫內,是不是很貼心啊!)。

故大家可以善用此功能特性,視您的需求,分批為自己的 SQLite 地圖資料庫增添更多不同區域的離線地圖檔。以下是選擇不同設定,執行四次 TrekBuddy Atlas Creator 1.2 beta 1 (android-map.blogspot.com Version 1) 所產生的統計數據。



上表說明了離線地圖儲存方式有目錄結構SQLite 資料庫兩種。

1. 目錄結構的儲存方式,會造成 "檔案佔磁碟大小" 遠比 "檔案實際大小" 還大的多,原因是最小的地圖檔(全部藍色的海洋部份)其實只有178位元組(Bytes),卻因PC磁碟叢集大小(Cluster size)為4KB,造成即使最小的地圖檔還是佔用了4KB磁碟大小,導致空間浪費。而在32KB叢集大小的SD卡內,空間浪費情形會更嚴重,同時將 25萬多 (257,289) 個檔案,實際大小共 466MB 的全部地圖放入SD卡中,寫入速度會慢到讓人發瘋,更不用說手機效能會因此降低。

2. SQLite 資料庫的儲存方式,使得原本 25萬多 (257,289) 個檔案,實際大小共 466MB 的全部地圖,存入 SQLite 資料庫後變成 496 MB,其中多出現的 30MB 主要是用來儲存資料庫內的索引 (Index),496MB 的 SQLite 資料庫放進 SD 卡內還是 496 MB,經過 Dr. TYT 測試,雖然資料庫內存了 25 萬多筆資料,但尚無效能問題。

故 Dr. TYT 的結論就是,採用 SQLite 資料庫作為儲存離線地圖的此款 Android 程式 Big Planet 1.2.4 真是太棒了,十分感謝程式原作者 Vadim Bartko,寫出這麼實用的程式,並釋出原始碼,雖然還有一些 Bug,以及不好使用的地方,但瑕不掩瑜,該程式還是相當實用,Dr. TYT 閒暇時,依舊會繼續加強該程式的功能,暫訂的目標是中文化,以及修好 Search 功能;選擇地圖語系(hl參數)與選擇不同 SQLite 地圖資料庫似乎比較沒有迫切性,故僅列為未來目標。大家若有其他想法,十分歡迎提出。

以下為本站提供的程式:
TrekBuddy Atlas Creator 1.2 beta 1 (android-map.blogspot.com Version 1)
Big Planet TW 1.2.4

11 則留言:

  1. 可以把海洋移除嗎?

    回覆刪除
  2. 一張全藍海洋圖檔只有178位元組(Bytes),即使有1萬張也不過是178x10,000(Bytes) = 1.78MB

    所以個人覺得這對容量的影響是微不足道的。

    回覆刪除
  3. 請教大大,為什麼做一張0-17的台灣地圖,那麼滴困難,到目前為止沒有成功過耶!!是不是哪裡出問題,或者有哪位大大有做好現成的台灣地圖可以分享呢???

    回覆刪除
  4. i have a samsung galaxy tab with display resolution of 1024x600.

    Can i create a map with this resolution?

    回覆刪除
  5. Who knows?
    I don't have a samsung galaxy tab.
    So the answer is "please try it by yourself".

    回覆刪除
  6. Dr, thanks for the reply.

    What I mean is: the map I download (using mobile atlas creator) when viewed with Big Planet is blurred and seem to be in resolution of 480*600, (when I view the map with Rmap software, the map is clear with 600*1024 resolution). Is there way in Big Plant software that i can adjust the resolution to 600*1204? Thanks in advance.

    回覆刪除
  7. Well, you may try Big Planet Tracks.

    回覆刪除
  8. 請問一下 如果使用離線地圖
    用定位的話 這樣要不要錢??

    回覆刪除
  9. 記得到設定的 Network mode (網路模式) 選 No 關閉從網路下載地圖的功能,否則你移到沒有離線地圖的區域,程式會自動幫你下載缺的地圖,用到 3G 網路就要錢。
    並記得只開啟GPS定位,關閉無線網路定位。

    還有,請使用新版 Big Planet Tracks

    回覆刪除