PostGISとRubyをsequelでつなぐ
PostGISとRubyをsequelでつなぐとシンプルで気持ちがよいです。
sequel をインストール
sequel というのは、the database toolkit for ruby という名前を持ち http://sequel.rubyforge.org/ でホストされているプロジェクトです。次のようにしてインストール可能です。
sudo gem install sequel
コマンド sequel でデータベースにアクセス
sequel をインストールすると sequel というコマンドラインツールが動かせます。psql よりもモダンで、簡単であるように感じます。d:id:hfu:20090616 の規約に従うと、次のような感じで動かすことができます。
$ sequel postgres://happier:more_productive@localhost/fitter
Your database is stored in DB...
irb(main):001:0> DB.tables
=> [:spatial_ref_sys, :geometry_columns, :gsi_fgd_admarea, :gsi_fgd_blda, :gsi_fgd_admbdry, :gsi_fgd_bldl, :gsi_fgd_commbdry, :gsi_fgd_cstline, :gsi_fgd_rdedg, :gsi_fgd_elevpt, :gsi_fgd_wl, :gsi_fgd_rdcompt, :gsi_fgd_commpt, :gsi_fgd_railcl]
irb(main):002:0> DB[:gsi_fgd_cstline].count
=> 1131
irb(main):003:0> DB.fetch("SELECT ST_GeomFromText('POINT (0 0)', 4326)"){|r| p r}
{:st_geomfromtext=>"0101000020E610000000000000000000000000000000000000"}
=> #
すっきり書けて気持ちが良いです。個人的にはデータベース接続設定を URI 風に postgres://happier:more_productive@localhost/fitter と記述できるのはとても嬉しいです。
ハッシュのキーに文字列ではなくてシンボルが使われているのも、geotools.rb でもそのようにしていたので、個人的には好みに合います。