2008年8月24日日曜日

基盤地図情報 4鎌倉市をPostGISで地図表示

鎌倉市をPostGISで地図表示

シェイプファイルをデータベースに登録します。

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

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


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

postgres@debian:~$ psql kamakura
Welcome to psql 8.3.3, 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

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

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

kamakura=# \q

shp2pgsqlコマンドを使ってシェイプファイルをデータベースに登録します。
一般ユーザでシェイプファイルのあるディレクトリに移動して、次のように入力します。

postgres@debian:~$ exit
logout
user@debian:~$ cd mapdata/kamakura/
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis AdmArea.shp gyoseikukaku > gyoseikukaku.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis AdmBdry.shp gyoseisen > gyoseisen.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis AdmPt.shp gyoseiten > gyoseiten.sql
Shapefile type: Point
Postgis type: POINT[2]
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis BldA.shp kenchikua > kenchikua.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis BldL.shp kenchikul > kenchikul.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis CommBdry.shp chojisen > chojisen.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis CommPt.shp chojiten > chojiten.sql
Shapefile type: Point
Postgis type: POINT[2]
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis Cstline.shp kaigansen > kaigansen.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis RailCL.shp kido > kido.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis RdEdg.shp doro > doro.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian:~/mapdata/kamakura$ shp2pgsql -W sjis WL.shp suigai > suigai.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]

shp2pgsqlコマンドを使ってシェイプファイルをデータベースに登録します。
一般ユーザでシェイプファイルのあるディレクトリに移動して、次のように入力します。

user@debian:~/mapdata/kamakura$ psql -d kamakura -f gyoseikukaku.sql
SET
BEGIN
psql:gyoseikukaku.sql:12: NOTICE: CREATE TABLE will create implicit sequence "gyoseikukaku_gid_seq" for serial column "gyoseikukaku.gid"
psql:gyoseikukaku.sql:12: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "gyoseikukaku_pkey" for table "gyoseikukaku"
CREATE TABLE
addgeometrycolumn
---------------------------------------------------------------
public.gyoseikukaku.the_geom SRID:-1 TYPE:MULTIPOLYGON DIMS:2

(1 row)

INSERT 0 1
---
COMMIT
user@debian:~/mapdata/kamakura$ psql kamakura
Welcome to psql 8.3.3, 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

kamakura=> \dt
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+-------
public | geometry_columns | table | user
public | gyoseikukaku | table | user
public | spatial_ref_sys | table | user
(3 rows)

gyoseikukakuテーブル内のカラムとその他の一覧を表示してみます。

kamakura=> \d gyoseikukaku
Table "public.gyoseikukaku"
Column | Type | Modifiers
----------+-----------------------+------------------------------------------------------------
gid | integer | not null default nextval('gyoseikukaku_gid_seq'::regclass)
id | character varying(8) |
uuid | character varying(25) |
presence | bigint |
finished | bigint |
orggilvl | character varying(8) |
orgmdid | character varying(8) |
type | character varying(16) |
name | character varying(16) |
code | integer |
the_geom | geometry |
Indexes:
"gyoseikukaku_pkey" PRIMARY KEY, btree (gid)
Check constraints:
"enforce_dims_the_geom" CHECK (ndims(the_geom) = 2)
"enforce_geotype_the_geom" CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL)
"enforce_srid_the_geom" CHECK (srid(the_geom) = (-1))

kamakura=> \q

残りのシェイプファイルも登録します。

user@debian:~/mapdata/kamakura$ psql -d kamakura -f gyoseisen.sql
user@debian:~/mapdata/kamakura$ psql -d kamakura -f gyoseiten.sql
user@debian:~/mapdata/kamakura$ psql -d kamakura -f kenchikua.sql
user@debian:~/mapdata/kamakura$ psql -d kamakura -f kenchikul.sql
user@debian:~/mapdata/kamakura$ psql -d kamakura -f chojisen.sql
user@debian:~/mapdata/kamakura$ psql -d kamakura -f chojiten.sql
user@debian:~/mapdata/kamakura$ psql -d kamakura -f kaigansen.sql
user@debian:~/mapdata/kamakura$ psql -d kamakura -f kido.sql
user@debian:~/mapdata/kamakura$ psql -d kamakura -f doro.sql
user@debian:~/mapdata/kamakura$ psql -d kamakura -f suigai.sql

0 件のコメント: