2008年7月28日月曜日

PostGISで地図を表示 3シェイプファイルを登録

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

postgres@debian:$ exit
user@debian-vmware:~$ cd mapdata/tokyo/
user@debian:~/mapdata/tokyo$ shp2pgsql -W sjis N03-071001_13.shp gyoseikai > gyoseikai.sql
user@debian:~/mapdata/tokyo$ psql -d tokyo -f gyoseikai.sql
user@debian:~/mapdata/tokyo$ 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=> \dt
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+-------
public | geometry_columns | table | user
public | gyoseikai | table | user
public | spatial_ref_sys | table | user
(3 rows)

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

tokyo=> \d gyoseikai
Table "public.gyoseikai"
Column | Type | Modifiers
------------+-----------------------+---------------------------------------------------------
gid | integer | not null default nextval('gyoseikai_gid_seq'::regclass)
todofuken | character varying(8) |
shicho | character varying(8) |
gun_seirei | character varying(10) |
shikuchoso | character varying(14) |
code | 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)

tokyo=> \q


Eclipseでデータベースを操作してみます。
最初に、PostgreSQLをJavaで操作できるようにSynapticパッケージマネージャでpostgresql用(一緒にPostGIS用も)のjdbc[libpg-java, libpostgis-java]をインストールします。

Eclipseに SQL Explorer プラグインをインストールします。

Eclipseに SQL Explorer
http://eclipsesql.sourceforge.net/

の Download リンクをクリックして

SQL Explorer Plugin 3.5.0.RC5

をダウンロードしてください。
ダウンロードしたファイルを解凍します。

unzip sqlexplorer_plugin-3.5.0.RC5.zip

featuresフォルダの中身をExplorerのfeaturesのフォルダに
pluginsフォルダの中身をExplorerのpluginsのフォルダに全部入れてください。
Eclipseを起動します。
ウィンドウ->パースペクティブを開く->その他 をクリックします。
パースペクティブを開く でSQL Explorerを選択し OK をクリックします。

*ganymedeの場合
1 メニューバーの ヘルプ->ソフトウェアの更新 をクリックします。
2 ソフトウェア更新及びアドオン ポップアップウィンドウが表示されたら サイトの追加 ボタンをクリックします。
3 サイトの追加 ポップアップウィンドウの ロケーション に次のURLを入力して OK ボタンをクリックします。
http://eclipsesql.sourceforge.net/
4 ソフトウェア更新及びアドオン ポップアップウィンドウ表示されたら、追加されたsqlexplorer のアップデートサイトのチェックボックスをクリックしてチェックし、インストール ボタンをクリックします。
5 インストール ポップアップウィンドウ表示されたら 終了 ボタンをクリックします。(何も表示されていなくてもOKです。バグ?)
6 フィーチャーライセンス が表示されたら 使用条項の条件に同意します をクリックし 終了 ボタンをクリックします。
7 インストールが終了したら ソフトウェア更新 ポップアップウィンドウ表示されるので はい ボタンをクリックし、eclipseを再起動します。

ウインドウ->設定をクリックします。
設定ポップアップウィンドウのSQL Explorer->JDBC ドライバーをクリックします。
PostgreSQL を選択して 編集 ボタンをクリックします。
Change Driverポップアップウィンドウの 追加クラス・パス タブをクリックし、追加 ボタンをクリックします。
ポップアップウィンドウで /usr/share/java/postgresql-jdbc3-8.2.jar を選んで OK ボタンをクリックします。
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テーブル のデータ内容が表示されます。

0 件のコメント: