Spatialite筆記一:簡單的入門
介紹
spatialite是在sqlite的外部再包了一層空間數(shù)據(jù)的外衣。
當然但绕,你要先了解sqlite芍锦,號稱開源的最輕量級別的數(shù)據(jù)庫,適合小項目和移動端在刺。這也是sqlite不衰奧秘调塌。sqlite底層是c語言驅(qū)動晋南,效率高。入門無需贅述羔砾,請移步至SQLite 教程负间。
spatialite的語法和postgresql相似,算是它的一個簡化入門版姜凄。
spatialite本身依賴于SQLite 3政溃、PROJ.4、GEOS态秧、FreeXL等開源項目董虱。功能強大,甚至可以做數(shù)據(jù)的投影轉(zhuǎn)換等申鱼。
安裝
Spalite的官網(wǎng)在此愤诱,它的安裝十分簡單藏鹊,Windows版本直接在官網(wǎng)下方有ftp的編譯安裝包,無需安裝綠色使用转锈。主要可以用CLI和GUI版本,其它還沒探索楚殿。而在Linux上的安裝可以參考試用 SpatiaLite(一):安裝及測試中的步驟撮慨。
操作
操作可以參考試用 SpatiaLite(一):安裝及測試,在這里羅列其中一部分脆粥。
連接數(shù)據(jù)庫
spatilite sqlitename.db
幫助
.help
參考數(shù)據(jù)庫
.database
參看數(shù)據(jù)表
.table`
轉(zhuǎn)換成橢球墨卡托投影
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轉(zhuǎn)Spatialite,創(chuàng)建點要素列
至于如何從sqlite轉(zhuǎn)換成為spatialite变隔,這是一個非常嚴肅的問題规伐。很多數(shù)據(jù)都是從sqlite來的。當然如果你的數(shù)據(jù)庫創(chuàng)建直接在spatialite上匣缘,一切都很好說猖闪。從sqlite中導入數(shù)據(jù)到spalite需要一個過程,首先輸入數(shù)據(jù)庫命令肌厨。
select InitSpatialMetaData();
初始化空間數(shù)據(jù)庫培慌,如果你的數(shù)據(jù)庫容量大,這個過程有點漫長柑爸。然后輸入命令吵护。
select AddGeometryColumn('你的表名', '你的幾何列名',4326, 'POINT');
最后,當然是從你以前的xy中賦值表鳍。
update 你的表名 set 你的幾何列名 = GeomFromText('POINT ('+緯度列=' '+經(jīng)度列+')',4326);
也可以這樣馅而。
update 你的表名 set 你的幾何列名 = MakePoint(X列,Y列,EPSG投影碼);
實例二:Sqlite轉(zhuǎn)Spatialite,創(chuàng)建MULTIPOLYGON要素列
和實例一相似譬圣,在數(shù)據(jù)庫空間初始化后瓮恭,創(chuàng)建數(shù)據(jù)列。
update 你的表名 set 你的幾何列名 = GeomFromText('WKT格式內(nèi)容')',4326);
WKT格式內(nèi)容參考WKT&WKB 筆記一:格式介紹胁镐,如此一來同理偎血,可以快速導入各種各樣的數(shù)據(jù)格式(點線面),不再展開盯漂。
總結(jié)
如同我在mapbox介紹中所說的颇玷,sqlite和gis結(jié)合運用十分緊密,無論在矢量還是柵格數(shù)據(jù)上就缆。它的輕量帖渠,整潔,快速開發(fā)都是它的優(yōu)點竭宰。希望這給你一點點幫助空郊。
參考
轉(zhuǎn)載份招,請表明出處。總目錄Awesome GIS