SQLite データベースでの空間対応
既存の SQLite データベースを空間対応にするには、次のいずれかを実行します:
SpatiaLite をインストールします。 SpatiaLite を SQLite データベースに追加するための情報については、SpatiaLite のドキュメントをご参照ください。
SQL を使用して ST_Geometry ライブラリーを読み込んでから、ST_Geometry タイプを既存の SQLite データベースに作成します。
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 パッケージをダウンロードし、その内容を抽出します。
Linux コンピューターに SQLite データベースを保存する場合、
libstdcc++.so.6.0.29ライブラリーまたはそれ以降のリリースが存在する必要があります。 存在しない場合は、抽出したパッケージのlibstdcc++.so.6ライブラリーを、libstgeometry_sqliteライブラリーと同じローカル Linux ディレクトリーに置きます。
必要に応じて、データベース ファイルの拡張子を
.sqliteに変更します。sqlite3.exeなどの SQL エディターを使用してデータベースに接続します。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に変更します。sqlite3.exeなどの SQL エディターを使用してデータベースに接続します。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();