要空间启用现有 SQLite 数据库,请执行以下操作之一:
- 安装 SpatiaLite。有关将 SpatiaLite 添加到 SQLite 数据库的信息,请参阅 SpatiaLite 文档。
- 使用 SQL 加载 ST_Geometry 库,然后在现有 SQLite 数据库中创建 ST_Geometry 类型。
- 使用 SQL 加载 ST_Geometry 库,然后 创建 OGC GeoPackage。
将 ST_Geometry 表添加 SQLite
要将 ST_Geometry 系统表添加到现有的 SQLite 数据库,需满足以下条件:
- 数据库文件的扩展名必须是 .sqlite;因此,如果要使用的数据库具有其他扩展名,请重命名。例如,如果数据库名为 projdata.d1,请将其重命名为 projdata.sqlite,然后再向其添加 ST_Geometry 类型。
- 数据库不能已经包含其他空间类型。
- Esri ST_Geometry 库必须能够从加载它的 SQL 编辑器进行访问。可从 My Esri 获取该库,或从 ArcGIS Desktop或 ArcGIS Server 安装位置的 DatabaseSupport 目录中复制该库。
- 如有必要,重命名数据库文件,使其具有扩展名 .sqlite。
- 使用 SQL 编辑器(如 sqlite3.exe)连接至数据库。
- 加载 ST_Geometry 库。
本示例将 ST_Geometry 库加载到 Microsoft 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
要将现有 SQLite 数据库转换为 GeoPackage,需要满足以下要求:
- 数据库文件的扩展名必须是 .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();