在空间上启用 SQLite 数据库
要在空间上启用现有 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 获取此库。 从数据库支持文件下载 ST_Geometry 包,并提取此包内容。
如果您将 SQLite 数据库存储在 Linux 计算机上,则必须存在
libstdcc++.so.6.0.29库或更高版本。 如果不,则将已提取包的libstdcc++.so.6库放置在与libstgeometry_sqlite库相同的本地 Linux 目录。
如有必要,重命名数据库文件,使其具有扩展名
.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','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','SDE_SQL_funcs_init');调用
CreateGpkgTables函数向数据库添加 GeoPackage 表。SELECT CreateGpkgTables();