2008年7月24日木曜日

PostGISで地図を表示 2データベースの作成

データベースを作成し、一般ユーザを登録します。

PostGISホームページ
http://postgis.refractions.net/

のDocumentation(html)の

PostGIS Manual
http://postgis.refractions.net/docs/



Chapter 2. Installation
http://postgis.refractions.net/docs/ch02.html

の2.2PostGISの5,6,7を参考に前回使用した東京都のデータを使用したデータベースを作成します。
これには3つのステップがあります。

1:PostgreSQLのpl/pgsql言語サポートの有効化
2:lwpostgis.sqlの読み込み
3:spatial_ref_sys.sqlの読み込み

です。
pl/pgsqlはデータベース内に組み込むことができる内部的なプログラミング言語をサポートします。
lwpostgis.sqlはPostGISの機能で、pl/pgsqlが有効になって読み込むことができます。
spatial_ref_sys.sqlは投影法に関する情報です。
lwpostgis.sqlとspatial.sqlの場所は、SynapticパッケージマネージャでPostGISを検索し、プロパティをクリックして、インストール済みパッケージタブをクリックすると表示されます。

postgres@debian:~$ createdb template_postgis
postgres@debian:~$ createlang plpgsql template_postgis
postgres@debian:~$ psql -d template_postgis -f /usr/share/postgresql-8.1-postgis/lwpostgis.sql
postgres@debian:~$ psql -d template_postgis -f /usr/share/postgresql-8.1-postgis/spatial_ref_sys.sql

作成したtemplate_postgisをテンプレートとしてオーナーがuserでtokyoというデータベースを作成します。

postgres@debian:~$ createdb -T template_postgis -O user tokyo
postgres@debian:~$ psql -l
List of databases
Name | Owner | Encoding
------------------+----------+----------
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
template_postgis | postgres | UTF8
tokyo | user | UTF8


ここまでの作業をテンプレートを作成しないで、直接tokyoというデータベースを作成することもできます。
そのときは、template_postgisをtokyoと読み替えてください。

tokyoデータベースのgeometry_columnテーブルとspatial_ref_sysテーブルのオーナーをuserに変更します。

postgres@debian:~$ psql tokyo
Welcome to psql 8.1.11, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

tokyo=# \d
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+----------
public | geometry_columns | table | postgres
public | spatial_ref_sys | table | postgres
(2 rows)

tokyo=# ALTER TABLE geometry_columns OWNER TO user;
ALTER TABLE
tokyo=# ALTER TABLE spatial_ref_sys OWNER TO user;
ALTER TABLE
tokyo=# \d
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+-------
public | geometry_columns | table | user
public | spatial_ref_sys | table | user
(2 rows)

tokyoデータベースに一般ユーザuserを追加します。

tokyo=# CREATE USER user;
ERROR: role "user" already exists (既に登録済み場合)
tokyo=# ALTER USER user with password 'password'; ('password' ''内の pasword は任意)
ALTER ROLE
tokyo=# \q

0 件のコメント: