要在现有 SQLite 数据库中存储空间数据,可以安装 SpatiaLite 然后添加 ST_Geometry 类型,也可以创建 GeoPackage。
有关将 SpatiaLite 添加到 SQLite 数据库的信息,请参阅 SpatiaLite 文档。
使用 SQL 加载 ST_Geometry 库,然后在现有 SQLite 数据库中创建 ST_Geometry 类型或 GeoPackage,如以下部分所述。
添加 ST_Geometry 表
要将 ST_Geometry 系统表添加到现有的 SQLite 数据库,需满足以下条件:
- 数据库文件的扩展名必须是 .sqlite;因此,如果要使用的数据库具有其他扩展名,请重命名。例如,如果数据库名为 projdata.d1,请将其重命名为 projdata.sqlite,然后再向其添加 ST_Geometry 类型。
- 数据库中不能已经包含其他空间类型。
- 如有必要,重命名数据库文件,使其具有扩展名 .sqlite。
- 使用 SQL 编辑器(如 sqlite3.exe)连接至数据库。
- 加载 ST_Geometry 库。
本示例将 ST_Geometry 库加载到 Windows 计算机上的 SQLite 数据库:
SELECT load_extension('stgeometry_sqlite.dll','SDE_SQL_funcs_init');
本示例将 ST_Geometry 库加载到 Linux 计算机上的 SQLite 数据库:
SELECT load_extension('libstgeometry_sqlite.so','SDE_SQL_funcs_init');
- 调用 CreateOGCTables 函数以向数据库添加 ST_Geometry 表。
SELECT CreateOGCTables();
添加 GeoPackage 表
要将 GeoPackage 系统表添加到现有的 SQLite 数据库,需满足以下条件:
- 数据库文件的扩展名必须是 .gpkg;因此,如果要使用的数据库具有其他扩展名,请重命名。例如,如果数据库名为 study.db,请将其重命名为 study.gpkg,然后再向其添加 GeoPackage 表。
- 数据库中不能已经包含其他空间类型。
- 如有必要,重命名数据库文件,使其具有扩展名 .gpkg。
- 使用 SQL 编辑器(如 sqlite3.exe)连接至数据库。
- 加载 ST_Geometry 库。
本示例将 ST_Geometry 库加载到 Windows 计算机上的 SQLite 数据库:
SELECT load_extension('stgeometry_sqlite.dll','SDE_SQL_funcs_init');
本示例将 ST_Geometry 库加载到 Linux 计算机上的 SQLite 数据库:
SELECT load_extension('libstgeometry_sqlite.so','SDE_SQL_funcs_init');
- 调用 CreateGpkgTables 函数以向数据库添加 GeoPackage 表。
SELECT CreateGpkgTables();