16.3. Lesson: インポートとエクスポート

もちろん、データを出し入れする簡単な方法がないデータベースはあまり役に立たないでしょう。幸い、PostGISにデータを簡単に出し入れできるようにするツールはたくさんあります。

16.3.1. shp2pgsql

shp2pgsqlは、ESRIシェープファイルをデータベースにインポートするためのコマンドラインツールです。Unixでは、以下のコマンドで新しいPostGISテーブルをインポートすることができます:

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> | \
  psql -d <databasename> -h <hostname> -U <username>

Windows では, 2ステップでインポート処理を実行します :

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> > import.sql
psql psql -d <databasename> -h <hostname> -U <username> -f import.sql

次のようなエラーが発生することがあります :

ERROR:  operator class "gist_geometry_ops" does not exist for access method
"gist"

This is a known issue regarding the creation in situ of a spatial index for the data you're importing. To avoid the error, exclude the -I parameter. This will mean that no spatial index is being created directly, and you'll need to create it in the database after the data have been imported. (The creation of a spatial index will be covered in the next lesson.)

16.3.2. pgsql2shp

pgsql2shp は, PostGIS のテーブル, ビュー, または SQL の select クエリをエクスポートするためのコマンドラインツールです. Unix では次のように実行します :

pgsql2shp -f <path to new shapefile> -g <geometry column name> \
  -h <hostname> -U <username> <databasename> <table | view>

クエリを使用してデータをエクスポートするには :

pgsql2shp -f <path to new shapefile> -g <geometry column name> \
  -h <hostname> -U <username> "<query>"

16.3.3. ogr2ogr

ogr2ogr is a very powerful tool to convert data into and from postgis to many data formats. ogr2ogr is part of the GDAL library and has to be installed separately. To export a table from PostGIS to GML, you can use this command:

ogr2ogr -f GML export.gml PG:'dbname=<databasename> user=<username>
        host=<hostname>' <Name of PostGIS-Table>

16.3.4. DB Manager

データベース メニュー内の DBマネージャ という別のオプションに気づいているかもしれません. これは PostGIS を含む空間データベースと対話する統一的なインターフェイスを持つ新しいツールです。このツールもインポートしたデータベースから他のフォーマットにエクスポートできます。次のモジュールは主にこのツールを使うことを念頭に置いているので、ここで簡単にそれを説明します。

16.3.5. In Conclusion

データベースとの間でデータをインポート及びエクスポートは, 多様な方法で行うことができます. 異なるデータソースを使用する場合は特に, この機能(またはこの機能に似た機能)を使用します.

16.3.6. What's Next?

次に,私たちが以前に作成したデータを参照する方法を見ていきます.