2008年08月25日
DBIx::Class::GeomColumns
Posted by nene2001 at 14:18 /
Tag(Edit):
perl
cpan
postgis
wkt
/
0 Comments:
Post /
View
/
0 TrackBack
/ Google Maps
必要になったので作りました。
DBIx::Classで、PostGISやmysqlのGEOMETRY型のカラムに対し、読み込み時はAsText関数、書き込み時はGeomFromText関数を通して、WKT形式でアクセスできるようにしたものです。
DBIx::Class::UTF8Columnsを参考にしたので、こんな感じで使います。
package POI;
__PACKAGE__->load_components(qw/GeomColumns Core/);
# GEOMETRY型のカラムを指定します。SRID指定の場合はハッシュリファレンスで渡します。
# 無指定の場合は4326(WGS84)です。
__PACKAGE__->utf8_columns('wgs84_col',{'tokyo_col' => 4301});
# 以下では、AsText(wgs84_col)の結果を返します。
$poi->wgs84_col;
# Create/Update時は、GeomFromText($data,$srid)の値を書き込みます。
# 下の例は、GeomFromText('POINT(135 35)',4301)で更新されます。
$poi->tokyo_col('POINT(135 35)');
$poi->update;
とりあえず作ってはみたものの、DBIx::Class自体まだまだ判ってないので変な実装してるような気がします。
もっとよい方法があれば突っ込んでいただければ幸いです。
また、読み込みも書き込みもSQLの関数通すので、Testの書き方が思いつかず書いてません。
SQL発行時のエラーは無視して、発行されるSQLだけトラップしてテストするようなやり方があれば何とかなりそうですが...。
Related query words in Google & Yahoo
Related Books from Amazon
Trackback to this entry
TrackBack URL :
Trackbacks
トラックバックはありません。
コメントはありません。
Post a comment
![[ここギコ!]](http://kokogiko.net/logo.png)



・国連人権委、アイヌ・琉球文化の保護を日本に勧告(ほるほる)
・GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(okumula)
・人員がクラスタ化できている職場と言うのはうらやましい そろそろ限界です(「ま」のつく人)
・もうAmazonクレジットカードは使いません...楽天カード一本で。(名無し)
・ジオメディア忘年会 新年会から始まり東京1、2、関西と続いたジオメディア2008の締めくくり(ぴかぴか)
・GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(kokogiko)
・GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(かやま)
・なんか天から2兆円降ってくるらしいので みんな思い思いのところに募金なり寄付するのはどうか(大阪府民)
・なんか天から2兆円降ってくるらしいので みんな思い思いのところに募金なり寄付するのはどうか(kokogiko)