Spatialite 笔记一:简单的入门

Spatialite笔记一:简单的入门

介绍

spatialite是在sqlite的外部再包了一层空间数据的外衣。

当然,你要先了解sqlite,号称开源的最轻量级别的数据库,适合小项目和移动端。这也是sqlite不衰奥秘。sqlite底层是c语言驱动,效率高。入门无需赘述,请移步至SQLite 教程

spatialite的语法和postgresql相似,算是它的一个简化入门版。

spatialite本身依赖于SQLite 3PROJ.4GEOSFreeXL等开源项目。功能强大,甚至可以做数据的投影转换等。

安装

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结合运用十分紧密,无论在矢量还是栅格数据上。它的轻量,整洁,快速开发都是它的优点。希望这给你一点点帮助。

参考

Spatialite煮书

转载,请表明出处。总目录Awesome GIS

    原文作者:brandonxiang
    原文地址: https://www.jianshu.com/p/f94d8eecc6b3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞