熱門文章

2012年8月30日 星期四

BigPlanet SQLite Database Merger v0.2


[BigPlanetSQLiteMerger v0.2 離線地圖資料庫合併程式]

[BigPlanetSQLiteMerger v0.2 更新細節]
  1. 升級 SQLite 函示庫為 sqlite-jdbc-3.7.2.jar,現在全面性支援 32 位元與 64 位元的各種作業系統包括 Linux、Mac、Windows。
  2. 合併時可取代舊的地圖圖檔 (tiles)。
  3. 合併時可更新 RMaps 獨有的 info 資料表內的 minzoom, maxzoom 欄位。 (感謝網友 wdshieh 指出 0.1 版程式問題)
  4. 預設 JVM (Java 虛擬機器) 可用最大記憶體改為 -Xmx1024MB。
  5. 預設每 10000 筆資料合併一次 。

[BigPlanetSQLiteMerger v0.2 快速上手]
  1. 下載 BigPlanetSQLiteMerger v0.2.zip 並解壓縮至某目錄下,例如 C:\BigPlanetSQLiteMerger\
  2. 將欲合併的兩個 SQLite (*.sqlitedb) 離線地圖資料庫移至 C:\BigPlanetSQLiteMerger\ 目錄內,也就是說和 BigPlanetSQLiteMerger.jar 位於同一個目錄。
  3. 將欲合併的兩個離線地圖資料庫改名為 source.sqlitedb 及 target.sqlitedb (或是更改 start.bat 與 start.sh)
  4. 開始將 source.sqlitedb 的內容合併至 target.sqlitedb 內。
    • Windows 使用者請點兩下執行 start.bat,Linux 及 Mac 使用者請執行 start.sh (記得設定執行權限)
    • 假如 source.sqlitedb 內有 10,000 個地圖圖檔,target.sqlitedb 內有 20,000 個地圖圖檔,而且這兩個資料庫共有 2000 個地圖圖檔重複,則執行 start.bat 或 start.sh 進行合併後,source.sqlitedb 內容不變,還是有 10,000 個地圖圖檔,target.sqlitedb 則會有 20,000+(10,000-2,000) = 28,000 個地圖圖檔。
    • 如果您需要保留合併前的 target.sqlitedb (內有 20,000 個地圖圖檔),則請在合併之前先備份 target.sqlitedb

[BigPlanetSQLiteMerger.jar v0.2 參數說明]
共三個參數,第三個為選擇性參數:sourceSQLiteDB targetSQLiteDB [BatchSize=10000]
---------------------------------------------- 
java -Xms64M -Xmx1024M -jar BigPlanetSQLiteMerger.jar source.sqlitedb target.sqlitedb 10000
----------------------------------------------
  • 以上指令將 source.sqlitedb 內容合併至 target.sqlitedb,預設每 10000 筆資料合併一次。
  • 一旦 BatchSize 設越大,理論上合併速度越快,但執行時需要用越多記憶體,所以必須調整此參數 -Xmx1024M,此參數表示 JVM (Java 虛擬機器) 最多使用 1024 MB 的記憶體,若這個數字不夠大,就有可能出現 Out Of Memory (記憶體不足) 的錯誤。

[BigPlanetSQLiteMerger.jar v0.2 執行過程]