icon 2010/06/24 PostGISインストール
WEB+DBの記事を参考にPostGISをインストール
# aptitude search postgis
# aptitude install postgresql-8.3-postgis


■template作成
# su postgres
postgres$ createdb postgistemplate
postgres$ createlang plpgsql postgistemplate

予めSQLが用意されてるので実行する。
※WEB+DBだとlwpostgis_upgrade.sqlの取り込みがないが、2010/6/24現時点では必要
postgres$ psql -d postgistemplate -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql
postgres$ psql -d postgistemplate -f /usr/share/postgresql-8.3-postgis/lwpostgis_upgrade.sql
postgres$ psql -d postgistemplate -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql

ん?何か、spatial_ref_sys.sqlで「transaction block」エラーが出てるぽいよ(*_*)

どうやらPostgreSQL8.1の混在が悪さしてるらしいので、PostgreSQL関連を全て削除して再インストールしたら
うまくいきました。

■gisユーザの作成
WEB+DBにはgisユーザを作れと書いてあるけど、煩わしいのでpostgresユーザでw

■DB作成
テンプレートをpostgistemplate 、エンコードはUTF-8でDBを作成する。
postgres@colinux:~$ createdb -T postgistemplate -E UNICODE gisdb
postgres@colinux:~$ psql -l
List of databases
Name | Owner | Encoding
-----------------+----------+-----------
gisdb | postgres | UTF8
postgistemplate | postgres | UTF8
postgres | postgres | SQL_ASCII
template0 | postgres | SQL_ASCII
template1 | postgres | SQL_ASCII


■データダウンロード
国土地理院基盤地図情報の閲覧・ダウンロードからJPGIS2.0形式をダウンロードできます。
▽基盤地図情報(縮尺レベル25000)
ら全都道府県を全部開いて「行政区画の境界線及び代表点」を一つずつ
選択してダウンロード(苦)

てか、47 x 2クリック・・・何だこの使いにくさは!>国交省w

▽基盤地図情報閲覧コンバートソフト
JPGIS形式をPostGISに変換するコンバータをダウンロード

■基盤地図情報閲覧コンバートソフト
(1) 新規プロジェクト作成
(2) 読み込むファイルにダウンロードしたzipファイルを選択して読み込み
(3) コンバート > シェープファイルへの出力を選択
(4) 「行政区間25000」「直交座標系にして変換」にチェックし「9系」を選択して書き出し
(5) AdmArea.shpが書き出される

■SQL変換・実行
AdmArea.shpをSJISでareas.sqlに変換し、areas.sqlをUTF-8に変換してから実行する。
postgres$ shp2pgsql -W "SJIS" -s 2451 AdmArea.shp areas > areas.sql
postgres$ nkf -w --overwrite areas.sql
postgres$ psql -d gisdb < areas.sql


■座標の変換
ALTER TABLE areas ADD COLUMN wgs_geom GEOMETRY;
UPDATE areas SET wgs_geom = TRANSFORM(the_geom, 4326);
CREATE INDEX areas_gist on areas USING GIST(wgs_geom GIST_GEOMETRY_OPS);


■実行例
▽世田谷区に隣接した市区町村を取得
ST_INTERSECTSというストアドプロシジャが用意されている。
SELECT 行政コード,名称 FROM areas WHERE ST_INTERSECTS (
the_geom, (SELECT the_geom FROM areas WHERE 行政コード = 13112)
);

すげぇw
これは位置ゲームに使えそう!

このサイトについて

HTML5 & CSS3化しつつあるので、現在IEには対応してません。
できれば、Google Chromeやら Apple SafariのWebKit系をお勧めします。

DBからプログラムまで一応全て自作なので、バグってたらすいません。
実験でFlash版(Flex版)を先に作りましたが、ちょっと停止してます。

プロフィール

新宿近辺でSE & プログラマーしてます。
Webアプリの開発・設計とか、最近はiPhoneとか奮闘してます。
デザインはさっぱりです。

音楽は、昔からCubase打ち込み人間で、そっちの方が経歴は長いですが、最近はやる暇がないです。。。

今は、Gon's Privates ってバンドのキーボードやってます。
単発的に、なんちゃってジャズ系のライブもやってます。

名古屋生まれなのでドラゴンズ好きです。

Info && SNS

Gmail

 yohei.yoshikawa@gmail.com

Twitter

 http://twitter.com/yoo_yoo_yoo

あんまつぶやきませんが、一応技術系メインで使ってます。情報交換はこちらへ

FaceBook

 http://www.facebook.com/#!/profile.php?id=1439130626

海外の知り合いがいないので閑散としてます。

mixi

 http://mixi.jp/show_profile.pl?id=230072

音楽仲間とかはこっちメインでやってます。興味があればこちらへ