Skip to main content

在空间上启用 SQLite 数据库

要在空间上启用现有 SQLite 数据库,执行以下操作之一:

将 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 目录。

  1. 如有必要,重命名数据库文件,使其具有扩展名 .sqlite

  2. 使用 SQL 编辑器(如 sqlite3.exe)连接至数据库。

  3. 加载 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');

  4. 调用 CreateOGCTables 函数以向数据库添加 ST_Geometry 表。

    SELECT CreateOGCTables();

创建 GeoPackage

要将现有 SQLite 数据库转换为 GeoPackage,需要满足以下要求:

  • 数据库文件的扩展名必须是 .gpkg;因此,如果要使用的数据库具有其他扩展名,请重命名。 例如,如果数据库名为 study.db,需要将其重命名为 study.gpkg,然后才能将其转换为 GeoPackage。

  • 数据库不能已经包含其他空间类型。

  1. 如有必要,重命名数据库文件,使其具有扩展名 .gpkg

  2. 使用 SQL 编辑器(如 sqlite3.exe)连接至数据库。

  3. 加载 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');

  4. 调用 CreateGpkgTables 函数向数据库添加 GeoPackage 表。

    SELECT CreateGpkgTables();