PostGIS

提供: ArchWiki
ナビゲーションに移動 検索に移動

PostGIS は PostgreSQL データベースに地理情報オブジェクトのサポートを追加します。このドキュメントでは PostGIS のインストールとテンプレート PostGIS データベースの作成について説明します。PostgreSQL は既にインストールされていることを前提とします。まだインストールしていない場合は PostgreSQL のページを見てください。

インストール

postgis パッケージをインストールしてください。

PostGIS 拡張のインストール

PostgreSQL 9.1 から PostGIS をインストールしたら空間データベースの postgis 拡張を有効にすることが推奨されています [1]:

$ psql

-- verify available extensions
SELECT name, default_version,installed_version 
FROM pg_available_extensions WHERE name LIKE 'postgis%' ;

-- install extension for spatial database mygisdb
\c mygisdb
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION postgis_tiger_geocoder;

PostGIS 拡張を使用する場合、下のテンプレート PostGIS データベースの作成は不要になります。

postgis 拡張をアップグレード:

$ psql

ALTER EXTENSION postgis UPDATE TO "2.1.0";

postgis_template で作成した空間データベースを移行したい場合、データベースを dump してから空間データベースを再作成してデータベースをリストアしてください。詳しくは http://postgis.net/docs/manual-dev/postgis-ja.html#hard_upgrade を見てください。

テンプレート PostGIS データベースの作成

postgres ユーザーに切り替えてください:

$ su
# su - postgres

PostgreSQL にアクセスするためのスーパーユーザーを作成していない場合、ここですると良いでしょう。ユーザーに権限を与えるように要求されます:

$ createuser [username]

"template_postgis" という名前の新しいデータベースを作成:

$ createdb -O [username] template_postgis -E UTF-8

PostGIS はデータベース上に pl/pgSQL 言語のインストールを必要とします:

$ createlang plpgsql template_postgis

PostgreSQL の PostGIS 空間タイプと空間参照システムをロードしてください。PostGIS には "postgis.sql" と "spatial_ref_sys.sql" が含まれており /usr/sharepostgresql/contrib/postgis-2.1/ に存在します:

$ psql -d template_postgis -f /usr/share/postgresql/contrib/postgis-2.1/postgis.sql
$ psql -d template_postgis -f /usr/share/postgresql/contrib/postgis-2.1/spatial_ref_sys.sql

実際のテンプレートにするには:

$ psql

UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template_postgis';

テンプレートから PostGIS データベースを作成

新しい PostGIS データベースを作成する場合はテンプレートを予約します。PostgreSQL のスーパーユーザーで以下のコマンドを実行することで新しいデータベースが作成されます:

$ createdb -T template_postgis [new_postgis_db]

PostGIS が json_tokener_error で動作しない

拡張として postgis を追加した場合に発生します。libjson-c パッケージが変更されたのに PostGIS が新しいバージョンに対応した安定版をリリースしていない場合にこの問題が発生します。バグレポートが こちら にあります。

postgis の PKGBUILD をダウンロードしてバージョンを '2.1.0rc1' に変更してください。

参照