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的差異