2015年7月16日木曜日

11 - PostGIS - 2 データベースの作成

11-2 データベースの作成
データベースを作成し、一般ユーザを登録します。
PostGIS ホームページ
http://postgis.net/

の Documentation ボタンをクリックします。

PostGIS - Documentation
http://postgis.net/documentation

の PostGIS 2.1(HTML)をクリックします。

PostGIS 2.1 Manual
http://postgis.net/docs/manual-2.1/



Chapter 2. Installation
http://postgis.net/docs/manual-2.1/postgis_installation.html

の 2.6. Creating a spatial database using EXTENSIONS を参考に東京都のデータのデータベースを作成します。

nippon というデータベースを作成します。


postgres@deb8-vmw:~$ createdb nippon
postgres@deb8-vmw:~$ psql -d nippon -c "CREATE EXTENSION postgis;"
CREATE EXTENSION
postgres@deb8-vmw:~$ psql -l
                                         データベース一覧
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |      アクセス権       
-----------+----------+------------------+-------------+-------------------+-----------------------
 nippon    | postgres | 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
(4 行)

(stdin):q


postgres@deb8-vmw:~$ psql nippon
psql (9.4.3)
"help" でヘルプを表示します.

nippon=# \d
                 リレーションの一覧
 スキーマ |       名前        |    型    |  所有者  
----------+-------------------+----------+----------
 public   | geography_columns | ビュー   | postgres
 public   | geometry_columns  | ビュー   | postgres
 public   | raster_columns    | ビュー   | postgres
 public   | raster_overviews  | ビュー   | postgres
 public   | spatial_ref_sys   | テーブル | postgres
(5 行)


geography_columns
ジオグラフィ型のカラム。「緯度/経度」を角度の単位(度)で表す地理座標「WGS 84経度緯度(SRID:4326)」だけサポートします。地球規模簿の2点間の距離を円弧で計算します。(4.2. PostGIS Geography Type 参照)
geometry_columns
ベクタデータで使用するジオメトリ型のカラム。
raster_columns
ラスタデータ型のカラム。
raster_overviews
基本ラスタテーブルの低解像度版カラム。
spatial_ref_sys
変換/再投影するために必要な空間参照系に関するOGC準拠のデータベーステーブル。

これらのオーナーを user に変更します。


nippon=# ALTER VIEW geography_columns OWNER TO user;
ALTER VIEW
nippon=# ALTER VIEW geometry_columns OWNER TO user;
ALTER VIEW
nippon=# ALTER VIEW raster_columns OWNER TO user;
ALTER VIEW
nippon=# ALTER VIEW raster_overviews OWNER TO user;
ALTER VIEW
nippon=# ALTER TABLE spatial_ref_sys OWNER TO user;
ALTER TABLE
nippon=# \d
                リレーションの一覧
 スキーマ |       名前        |    型    | 所有者 
----------+-------------------+----------+--------
 public   | geography_columns | ビュー   | user
 public   | geometry_columns  | ビュー   | user
 public   | raster_columns    | ビュー   | user
 public   | raster_overviews  | ビュー   | user
 public   | spatial_ref_sys   | テーブル | user
(5 行)


続けて東京都のデータを登録します。


nippon=# \q
postgres@deb8-vmw:~$ exit
ログアウト
user@deb8-vmw:~$ cd mapdata/nlni/tokyo/
user@deb8-vmw:~/mapdata/nlni/tokyo$ ls
KS-META-N03-14_13_140401.xml  N03-14_13_140401.prj  N03-14_13_140401.shp
N03-140401_13_GML.zip         N03-14_13_140401.sbn  N03-14_13_140401.shx
N03-14_13_140401.dbf          N03-14_13_140401.sbx  N03-14_13_140401.xml

user@deb8-vmw:~/mapdata/nlni/tokyo$ shp2pgsql -W sjis N03-14_13_140401.shp tokyo_kuiki > tokyo_kuiki.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]


(shp2pgsql オプション
-W カラムの属性の文字列を(UTF-8)にエンコードします。)


user@deb8-vmw:~/mapdata/nlni/tokyo$ psql -d nippon -f tokyo_kuiki.sql
user@deb8-vmw:~/mapdata/nlni/tokyo$ psql nippon
psql (9.4.3)
"help" でヘルプを表示します.

nippon=> \d
                  リレーションの一覧
 スキーマ |        名前         |     型     | 所有者 
----------+---------------------+------------+--------
 public   | geography_columns   | ビュー     | user
 public   | geometry_columns    | ビュー     | user
 public   | raster_columns      | ビュー     | user
 public   | raster_overviews    | ビュー     | user
 public   | spatial_ref_sys     | テーブル   | user
 public   | tokyo_kuiki         | テーブル   | user
 public   | tokyo_kuiki_gid_seq | シーケンス | user
(7 行)


nippon=> \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)   | 
 geom    | geometry(MultiPolygon) | 
インデックス:
    "tokyo_kuiki_pkey" PRIMARY KEY, btree (gid)


(stdin):q



一般ユーザ user のパスワードを設定します。


nippon=> ALTER USER user with password 'password(任意)';
ALTER ROLE
nippon=> \q


マップファイル tokyo_pgis.map を作成します。

MAP
 NAME tokyo_pgis_map
 STATUS ON
 SIZE 600 300
 EXTENT 138.85 35.4 140 35.975
# EXTENT 136.069482 20.425119 153.986898 35.898424
 UNITS DD
# SHAPEPATH "../mapdata/nlni/tokyo"
 IMAGECOLOR 255 255 255
 FONTSET "fonts.txt"

 WEB
  IMAGEPATH "/home/user/public_html/ms_tmp/"
  IMAGEURL "/public_html/ms_tmp/"
 END
 LAYER
  NAME gyoseikuiki
  TYPE POLYGON
  STATUS ON
#  DATA "../tokyo/N03-14_13_140401.shp"
  CONNECTIONTYPE POSTGIS
  CONNECTION "dbname=nippon host=localhost user=user password='password'"
  DATA "geom from tokyo_kuiki"
  LABELITEM "n03_004"
  CLASS
   NAME "City Boundaries"
   STYLE
    OUTLINECOLOR 153 153 153
   END
   LABEL
    MINFEATURESIZE 40
    TYPE TRUETYPE
    FONT kochi-gothic
    ENCODING UTF-8
    SIZE 8
   END
  END
 END
END #MAP END
http://localhost/cgi-bin/mapserv?mode=browse&template=openlayers&layer=gyoseikuiki&map=/home/user/mapfile/tokyo_pgis.map

0 件のコメント: