1. 程式人生 > >Qgis開啟sqlite資料來源失敗解決探索

Qgis開啟sqlite資料來源失敗解決探索

遇到的問題:Qgis開啟含有WKB二進位制格式幾何欄位的sq3資料時,地理資訊無法顯示,只能以表的形式載入;

原因:Qgis只能識別spatialite格式的資料來源,sqlite的只能以表的形式開啟;

驗證方式:把shp檔案分別另存為sqlite格式、spatialite格式資料,再用Qgis開啟;

1、用載入spatialite格式的方式載入sqlite,顯示Failure getting table metadata...is ** really a SpatiaLite database?

2、用載入向量檔案的方式載入sqlite,Geometry type顯示為None;

3、用載入spatialite資料的方式載入剛才儲存的spatialite格式資料,地理資訊正確顯示,並且比shp格式多了很多載入圖層;

4、匯出時Geometry Type選擇對應的型別,而不是Automatic,再次載入時成功

結果:qgis可以開啟WKB格式的sqlite資料,我遇到的是sqlite儲存的是spatialite blob的格式,qgis解析非標準WKB格式的資料失敗,導致Geomtry Type=None,所以只能講spatialite blob的資料轉成標準的WKB格式

 

空間資料庫:

https://blog.csdn.net/gisuuser/article/category/7231661?orderby=UpdateTime

SQLite 與 SpatiaLite的關係

空間資料庫:在幾乎絕大多數資料庫都具有空間資料的儲存和查詢功能後,SQLite說自己是世界上最小的資料庫,為了與時俱進也有了空間資料支援的擴充套件,利用這個擴充套件,可以按照OGC的Simple Feature Access標準存取空間資料。

Spatialite: 支援SQLite空間資料功能的這個專案名叫SpatiaLite,與其一同分發的還有一個VirtualShape。前者為SQLite增加空間資料支援,後者可以把一個Shapefile作為SQLite的資料庫;

作用:spatialite能使sqlite具有距離、位置關係判斷等功能函式,具有把shp格式作為sqlite表識別處理的能力,Python等語言載入spatialite包後,能處理簡單的地理運算;

spatialite blob和WKB的差異

https://wenku.baidu.com/view/94dd85480b4c2e3f56276345.html

http://www.gaia-gis.it/gaia-sins/BLOB-Geometry.html