2009年7月26日日曜日

東京(平成20年)の国土数値地図を PostGIS で

Synapticパッケージマネージャで次のパッケージをインストールします。
リポジトリの変更はありません。
現在の安定版 "lenny" では次のバージョンがインストールされます。

postgresql-8.3-postgis

データベースの作成は、
PostGISホームページ
http://postgis.refractions.net/

のDocumentation(html)の

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

の左サイドバーの Documentation: Stable Releases ●1.3 [html] (v1.3.6) をクリックして、

Chapter 2. Installation
http://postgis.refractions.net/documentation/manual-1.3/ch02.html

の2.2. PostGIS Compile from Source and Installの7,8,9,10を参考に前回使用した東京都のデータを使用したデータベースを作成します。
これには4つのステップがあります。

1:PostgreSQLのpl/pgsql言語サポートの有効化
2:lwpostgis.sqlの読み込み
3:spatial_ref_sys.sqlの読み込み
4:postgis_comments.sqlの読み込み(ver.1.3.3にはありませんでした)

です。
pl/pgsqlはデータベース内に組み込むことができる内部的なプログラミング言語をサポートします。
lwpostgis.sqlはPostGISの機能で、pl/pgsqlが有効になって読み込むことができます。
spatial_ref_sys.sqlは投影法に関する情報です。
postgis_comments.sqlは postgis が持つ機能についてのヘルプ文章です。

次に、2.2.1. Creating PostGIS spatially-enabled databases from an in-built template を参考にテンプレートを作成してデータベースを作成します。

nob61@debian:~/mapdata/tokyo$ psql tokyo
Welcome to psql 8.3.7, 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=> \dt
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+-------
public | geometry_columns | table | nob61
public | gyoseikai | table | nob61
public | spatial_ref_sys | table | nob61
(3 rows)

tokyo=> \d gyoseikai
Table "public.gyoseikai"
Column | Type | Modifiers
----------+-----------------------+---------------------------------------------------------
gid | integer | not null default nextval('gyoseikai_gid_seq'::regclass)
prn | character varying(6) |
sun | character varying(1) |
con | character varying(8) |
cn2 | character varying(10) |
aac | character varying(5) |
the_geom | geometry |
Indexes:
"gyoseikai_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))


*Galileoの場合
1 メニューバーの ヘルプ->新規ソフトウェアのインストール をクリックします。
2 使用可能なソフトウェアが表示されたら 追加 ボタンをクリックします。
3 サイトの追加 ポップアップウィンドウの 名前に SQL Explorer ロケーション に次のURLを入力して OK ボタンをクリックします。
http://eclipsesql.sourceforge.net/
4 使用可能なソフトウェア ポップアップウィンドウ表示されたら、追加されたsqlexplorer のアップデートサイトのチェックボックスをクリックしてチェックし、次へ ボタンをクリックします。
(項目をカテゴリー別にグループ化 のチェックを外してください。)
5 インストール詳細 ポップアップウィンドウ表示されたら 次へ ボタンをクリックします。
6 ライセンスのビュー が表示されたら 使用条項の条件に同意します をクリックし 完了 ボタンをクリックします。
7 インストールが終了したら ソフトウェア更新 ポップアップウィンドウ表示されるので はい ボタンをクリックし、eclipseを再起動します。


メニューバーの ウィンドウ->パースペクティブを開く->その他 で パースペクティブを開く ポップアップウィンドウ表示されるので SQL Explorer をクリックし OK ボタンをクリックします。
ウインドウ->設定 をクリックします。
設定ポップアップウィンドウの SQL Explorer->JDBC ドライバー をクリックします。
PostgreSQL を選択して 編集 ボタンをクリックします。
Change Driverポップアップウィンドウの 追加クラス・パス タブをクリックし、新規 ボタンをクリックします。
ポップアップウィンドウで /usr/share/java/postgresql-jdbc3-8.2.jar を選んで OK ボタンをクリックします。
(ない場合は、Synapticパッケージマネージャで libpg-java をインストールしてください。)
Change Driverポップアップウィンドウで postgresql-jdbc3-8.2.jar を選んで ドライバーをリス をボタンをクリックし、ドライバクラス名 が表示されたら OK ボタンをクリックします。
設定 ポップアップウィンドウの OK ボタンをクリックします。

接続 ウィンドウ上で右クリックし、新規接続プロファイル をクリックします。
新規接続プロファイル作成 ポップアップで次のように入力します。

Name:tokyo
Drivers:PostgreSQL
URL:jdbc:postgresql:[[:<5432>/]]
->jdbc:postgresql://localhost:5432/tokyo
User Name:user
Password:*******
Auto Logon:チェック(お好みで)

OK ボタンをクリックします。
接続 ウィンドウ上の tokyo の user を右クリックし 接続 をクリックします。
データベース構造(Database Structure) ウィンドウの

public -> テーブル(table) -> gyoseikai

をクリックし データベース詳細(Database Detail) ウィンドウの プレビュー(Preview) タブをクリックすると gyoseikaiテーブル のデータ内容が表示されます。

tokyo_pgis.map

MAP
NAME tokyo_pgis_map # 名前を変更
---
LAYER
NAME gyoseikai
TYPE POLYGON
STATUS ON
# DATA "../mapdata/tokyo/N03-090320_13_EC01.shp" # 削除
CONNECTIONTYPE POSTGIS # 追加
CONNECTION "dbname=tokyo host=localhost user=nob61 password=balanced" # 追加
DATA "the_geom from gyoseikai" # 追加
LABELITEM cn2 # PostGISでは大文字小文字を区別します
METADATA
"group_title" "行政界"
# "layer_encoding" "SJIS" # 削除
"queryable" "true"
"searchfield" "cn2" # PostGISでは大文字小文字を区別します
"fields" "con:郡政令,cn2:市区町村" # PostGISでは大文字小文字を区別します
END
CLASS
# NAME "City Boundaries"
NAME "行政界"
STYLE
OUTLINECOLOR 153 153 153
END
LABEL
MINFEATURESIZE 40
TYPE TRUETYPE
FONT vl-gothic
ENCODING UTF-8
SIZE 8
END
END
TEMPLATE temp_tokyo_shp.html
END

LAYER
NAME gun_seirei
GROUP gun_seirei
TYPE ANNOTATION
STATUS ON
# DATA "../mapdata/tokyo/N03-090320_13_EC01.shp" # 削除
CONNECTIONTYPE POSTGIS # 追加
CONNECTION "dbname=tokyo host=localhost user=nob61 password=balanced" # 追加
DATA "the_geom from gyoseikai" # 追加
LABELITEM con # PostGISでは大文字小文字を区別します
METADATA
"group_title" "郡政令"
# "layer_encoding" "SJIS" # 削除
"searchfield" "con" # PostGISでは大文字小文字を区別します
"fields" "con:郡政令,cn2:市区町村" # PostGISでは大文字小文字を区別します
END
CLASS
NAME "Gun Seirei Label"
LABEL
MINFEATURESIZE 40
TYPE TRUETYPE
FONT vl-gothic
ENCODING UTF-8
SIZE 8
POSITION uc
END
END
TEMPLATE temp_tokyo_shp.html
END

END # End of Mapfile

0 件のコメント: