Spatialite筆記一:簡單的入門
介紹
spatialite是在sqlite的外部再包了一層空間數據的外衣。
當然,你要先了解sqlite,號稱開源的最輕量級別的數據庫,適合小項目和移動端。這也是sqlite不衰奧秘。sqlite底層是c語言驅動,效率高。入門無需贅述,請移步至SQLite 教程。
spatialite的語法和postgresql相似,算是它的一個簡化入門版。
spatialite本身依賴于SQLite 3、PROJ.4、GEOS、FreeXL等開源項目。功能強大,甚至可以做數據的投影轉換等。
安裝
Spalite的官網在此,它的安裝十分簡單,Windows版本直接在官網下方有ftp的編譯安裝包,無需安裝綠色使用。主要可以用CLI和GUI版本,其它還沒探索。而在Linux上的安裝可以參考試用 SpatiaLite(一):安裝及測試中的步驟。
操作
操作可以參考試用 SpatiaLite(一):安裝及測試,在這里羅列其中一部分。
連接數據庫
spatilite sqlitename.db
幫助
.help
參考數據庫
.database
參看數據表
.table`
轉換成橢球墨卡托投影
select AsText(ST_Transform(MakePoint(114.1689,22.4518,4326),3857));
距離
select ST_Length(MakeLine(MakePoint(114.17052, 22.475837,4326), MakePoint(114.1689,22.4518,4326)), 1);
方位角
select Degrees(ST_Azimuth(MakePoint(114.1689,22.4518,4326), MakePointZ(114.17052, 22.475837, 437.639187, 4326)));
暫不展開,詳情參考筆記二
實例一:Splite轉Spatialite,創建點要素列
至于如何從sqlite轉換成為spatialite,這是一個非常嚴肅的問題。很多數據都是從sqlite來的。當然如果你的數據庫創建直接在spatialite上,一切都很好說。從sqlite中導入數據到spalite需要一個過程,首先輸入數據庫命令。
select InitSpatialMetaData();
初始化空間數據庫,如果你的數據庫容量大,這個過程有點漫長。然后輸入命令。
select AddGeometryColumn('你的表名', '你的幾何列名',4326, 'POINT');
最后,當然是從你以前的xy中賦值。
update 你的表名 set 你的幾何列名 = GeomFromText('POINT ('+緯度列=' '+經度列+')',4326);
也可以這樣。
update 你的表名 set 你的幾何列名 = MakePoint(X列,Y列,EPSG投影碼);
實例二:Sqlite轉Spatialite,創建MULTIPOLYGON要素列
和實例一相似,在數據庫空間初始化后,創建數據列。
update 你的表名 set 你的幾何列名 = GeomFromText('WKT格式內容')',4326);
WKT格式內容參考WKT&WKB 筆記一:格式介紹,如此一來同理,可以快速導入各種各樣的數據格式(點線面),不再展開。
總結
如同我在mapbox介紹中所說的,sqlite和gis結合運用十分緊密,無論在矢量還是柵格數據上。它的輕量,整潔,快速開發都是它的優點。希望這給你一點點幫助。
參考
轉載,請表明出處。總目錄Awesome GIS