Spatialite 是基於 SQLite 所延伸的開源資料庫,由 Alessandro Furieri 開發。本質上跟普通的 SQLite 沒有太大的差異,一個檔案就是一個資料庫,且可執行資料的增刪修查。最大的差異在於 Spatialite 支援空間資料的讀取與運算。
根據官網的介紹,Spatialite 與 SQLite 的搭配,可讓使用者快速部署一個完整與強大的空間資料庫管理系統,相當於 PostgreSQL + PostGIS 的組合。
如同前面介紹所提到的,因為 Spatialite 本質上仍是一個 SQLite 檔案,所以任何可以開啟 SQLite 檔案的軟體,理論上都可以使用,差別只是在於該軟體是否有支援 Spatialite 的相關方法。
如果您是 Windows 的使用者,可以使用 Spatialite-GUI 這套軟體來開啟。
不過要注意的是,GUI 所使用的 Spatialite 版本跟實際專案中使用的可能會有落差,不見得所有的空間運算方法都可以使用。
這裡提供一份 Spatialite 官方的範例檔案。來源是官方教學 spatialite-android-tutorial,有興趣的讀者可以透過下方連結,下載一份來看看。
https://bitbucket.org/moovida/spatialite-android-example/downloads/
以下是用 Spatialite-GUI 開啟的截圖:
上圖左下角的視窗,就是讀取
Geometry
欄位的其中一個項目,除了可以看到空間資料轉成向量圖的結果外,還可以看到 SRID 與 Geometry 類型等資訊。
Spatialite-Android 是由 U.S. Army Geospatial Center 所釋出的開源專案,讓開發者可以像操作普通 SQLite 一般,在 Android 專案中操作 Spatialite 的檔案。
筆者之前有使用過的是 3.0.1 的版本,引用的方式如下:
spatialite-android-library
的 libs
資料夾複製至你的專案中。(libs
內包含不同平台版本的 libjsqlite.so
)src
內的 jsqlite
完整 API 類別們複製至你的專案中。jsqlite
的相關類別操作 Spatialite 。筆者這段只簡單帶過,有需要更詳細操作說明的讀者,可以參考官方說明。下面將介紹比較好用的第三方版本
Github: sevar83/android-spatialite 是由 Svetlozar Kostadinov 所建立的開源專案,他將 4.3.0a 版本的 Spatialite 打包成套件,且優化了 Java 端的操作介面,整體使用起來更類似傳統的 SQLiteOpenHelper
,在開發上相對無痛一些。因此這也是筆者比較推薦的版本。
明天將帶各位一起實際實作 Spatialite 的檔案操作,屆時也是使用這個第三方的版本。
以上就是今天對 Spatialite 這個空間資料庫的介紹。
明天將帶大家實際操作 Spatialite 在 Android 上的 CRUD,以及常見的 SQL functions。
明天見啦~