访问量: 156 次浏览
有两种运行SpatiaLite命令行的方式 。 一种是使用sqlite命令, 这样打开数据库之后,需要加载其空间扩展;另一种是使用 spatialite命令,这样可以直接打开。
这两种方式运行的命令唯一的区别是命令行提示符的不同: 前者的提示符是spatialite>, 后者的提示符是sqlite>。
下面假设使用的的数据库名称为 aha.db 。
下面我们先看一下直接使用 spatialite命令打开数据库的方法:
spatialite aha.db
然后会生成下面的欢迎信息,并进行spatialite交互环境:
bk@g:/opt/gdata$ spatialite aha.db
SpatiaLite version ..: 4.1.1 Supported Extensions:
- 'VirtualShape' [direct Shapefile access]
- 'VirtualDbf' [direct DBF access]
- 'VirtualXL' [direct XLS access]
- 'VirtualText' [direct CSV/TXT access]
- 'VirtualNetwork' [Dijkstra shortest path]
- 'RTree' [Spatial Index - R*Tree]
- 'MbrCache' [Spatial Index - MBR cache]
- 'VirtualSpatialIndex' [R*Tree metahandler]
- 'VirtualXPath' [XML Path Language - XPath]
- 'VirtualFDO' [FDO-OGR interoperability]
- 'SpatiaLite' [Spatial SQL - OGC]
PROJ.4 version ......: Rel. 4.8.0, 6 March 2012
GEOS version ........: 3.4.2-CAPI-1.8.2 r3921
SQLite version ......: 3.8.7.1
Enter ".help" for instructions
SQLite version 3.8.7.1 2014-10-29 13:59:56
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
spatialite>
spatialite完全支持SQLite。 但是有时候,可能不得不使用 sqlite命令来打开数据库。 在这种情况下,想使用数据库的空间特性,需要加载 SQLite 的空间扩展模块。
通常首先打开sqlite3,执行以下命令:
sqlite3 aha.db
SQLite开始运行,并连接到了 aha.db 数据库。
现在你可以导入SpatiaLite扩展文件:
sqlite> .load 'libspatialite.so.5'
上面是在 Debian Jessie的加载方式,在不同的系统中, 文件名或版本号都可能会不一致,具体的文件名要根据 实际的情况。
不管是用什么方式打开空间数据库,都可以使用SQLite的 一些内置命令。
使用下面的语句设置输出的格式。
sqlite> .nullvalue NULL sqlite> .headers on sqlite> .mode list sqlite>
这里是SQLite的一些选项,没有什么新奇的,只是些常规的操作 选项。这里将 SQLite 的输出模式定义为 list ,可以修改成 其他的选项试一下。column 模式效果会更好一些,不过放到书 中,有时候会太宽,所以本书中设置成 list 选项。
SQLite 中,所有的命令是以英文句号 .开始的。
返回目录:Python与开源GIS