データベースを作成し、一般ユーザを登録します。
PostGISホームページ
http://postgis.net/
の Documentation ボタンをクリックします。
PostGIS - Documentation
http://postgis.net/documentation
の PostGIS 1.5(HTML)をクリックします。
PostGIS 1.5 Manual
http://postgis.net/docs/manual-1.5/
の
Chapter 2. Installation
http://postgis.net/docs/manual-1.5/ch02.html
の 2.5. Create a spatially-enabled database を参考に東京都のデータのデータベースを作成します。
plpgsql は PostGIS 関数でも使われる(手続き型)プログラミング言語です。
postgis.sql は PostGIS のオブジェクトと関数定義ファイルです。
spatial_ref_sys.sql は投影法(EPSG)に関する定義ファイルです。
postgis_comments.sql は postgis が持つ関数についてのコメント(ヘルプ)文章です。
次に、2.6 Creating PostGIS spatially-enabled databases from a template を参考にテンプレートを作成してデータベースを作成します。
これには3つのステップがあります。
1:データベースの作成
2:PostgreSQLのpl/pgsql言語サポートの有効化
3:postgis.sqlの読み込み
4:spatial_ref_sys.sqlの読み込み
5:postgis_comments.sqlの読み込み
です。
postgres@debian7-vmw:~$ createdb template_postgis
postgres@debian7-vmw:~$ createlang plpgsql template_postgis
createlang: 言語"plpgsql"データベース"template_postgis"内にすでにインストールされています
postgres@debian7-vmw:~$ psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
---
DROP FUNCTION
postgres@debian7-vmw:~$ psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
---
INSERT 0 1
COMMIT
ANALYZE
作成したtemplate_postgisをテンプレートとしてオーナーが user で nippon_nlni というデータベースを作成します。
postgres@debian7-vmw:~$ createdb -T template_postgis -O user nippon_nlni
postgres@debian7-vmw:~$ psql -l
データベース一覧 名前 | 所有者 |エンコーディング | 照合順序 |Ctype(変換演算子)| アクセス権 ------------------+---------+----------------+-----------+-----------------+----------------------- nippon_nlni | user | UTF8 |ja_JP.UTF-8| ja_JP.UTF-8 | postgres | postgres| UTF8 |ja_JP.UTF-8| ja_JP.UTF-8 | template0 | postgres| UTF8 |ja_JP.UTF-8| ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres| UTF8 |ja_JP.UTF-8| ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template_postgis | postgres| UTF8 |ja_JP.UTF-8| ja_JP.UTF-8 | (5 行) (stdin):q
nippon_nlni データベースの geography_columns テーブルと geometry_column テーブル、 spatial_ref_sys テーブルのオーナーを user に変更します。
postgres@debian7-vmw:~$ psql nippon_nlni
psql (9.1.9)
"help" でヘルプを表示します.
nippon_nlni=# \d
リレーションの一覧 スキーマ | 名前 | 型 | 所有者 ----------+-------------------+---------+---------- public | geography_columns | ビュー | postgres public | geometry_columns | テーブル | postgres public | spatial_ref_sys | テーブル | postgres (3 行)
PostGIS マニュアルの
Chapter 4. Using PostGIS: Data Management and Querie
http://postgis.refractions.net/documentation/manual-1.5/ch04.html
の 4.2 PostGIS Geography Type によると
geography_columns は、2点間の最短距離を球面上で計算するデータ型です。
実際の距離に近くなりますが、計算が複雑で、現在は EPSG:4326(WGS84)だけ装備されています。
geometry_columns は、2点間の最短距離を平面上で計算するデータ型です。
nippon_nlni=# ALTER VIEW geography_columns OWNER TO user;
ALTER TABLE
nippon_nlni=# ALTER TABLE geometry_columns OWNER TO user;
ALTER TABLE
nippon_nlni=# ALTER TABLE spatial_ref_sys OWNER TO user;
ALTER TABLE
nippon_nlni=# \d
リレーションの一覧 スキーマ | 名前 | 型 | 所有者 ----------+-------------------+---------+-------- public | geography_columns | ビュー | user public | geometry_columns | テーブル | user public | spatial_ref_sys | テーブル | user (3 行)
nippon_dnli データベースに一般ユーザuserを追加します。
nippon_nlni=# CREATE USER user;
ERROR: ロール"user"はすでに存在します
nippon_nlni=# ALTER USER user with password 'password(任意)';
ALTER ROLE
nippon_nlni=# \q
postgres@debian7-vmw:~$ exit
ログアウト
user@debian7-vmw:~$
続けて東京都のデータを登録します。
user@debian7-vmw:~/mapdata/tokyo$ ls
KS-META-N03-13_13_130401.xml N03-13_13_130401.sbx akiruno
N03-130401_13_GML.zip N03-13_13_130401.shp
N03-13_13_130401.dbf N03-13_13_130401.shx
N03-13_13_130401.sbn N03-13_13_130401.xml
~/mapdata/tokyo$ shp2pgsql -W sjis N03-13_13_130401.shp tokyo_kuiki > tokyo_kuiki.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian7-vmw:~/mapdata/tokyo$ psql -d nippon_nlni -f tokyo_kuiki.sql
user@debian7-vmw:~/mapdata/tokyo$ psql nippon_nlni
psql (9.1.9)
"help" でヘルプを表示します.
nippon_nlni=> \dt
リレーションの一覧 スキーマ | 名前 | 型 | 所有者 ----------+------------------+----------+-------- public | geometry_columns | テーブル | user public | spatial_ref_sys | テーブル | user public | tokyo_kuiki | テーブル | user (3 行) nippon_nlni=> \d tokyo_kuiki テーブル "public.tokyo_kuiki" カラム | 型 | 修飾語 ----------+-----------------------+----------------------------------------------------------- gid | integer | not null default nextval('tokyo_kuiki_gid_seq'::regclass) n03_001 | character varying(10) | n03_002 | character varying(20) | n03_003 | character varying(20) | n03_004 | character varying(20) | n03_007 | character varying(5) | the_geom | geometry | インデックス: "tokyo_kuiki_pkey" PRIMARY KEY, btree (gid) CHECK 制約: "enforce_dims_the_geom" CHECK (st_ndims(the_geom) = 2) "enforce_geotype_the_geom" CHECK (geometrytype(the_geom) = 'MULTI POLYGON'::text OR the_geom IS NULL) "enforce_srid_the_geom" CHECK (st_srid(the_geom) = (-1)) ~ ~ (stdin):qnippon_nlni=> \q
他のデータも登録します。
次回の投稿で作業内容を載せておきます。
0 件のコメント:
コメントを投稿