2006年11月07日

折角Geo::Coordinates::Converterを作ったので、サンプル的にフォーマッタを作ってみました。
LocaPointという位置情報表現仕様があったので、これのフォーマッタを試しに作ってみました。
http://trac.yappo.jp/trac/browser/Geo-Coordinates-Converter-Format-Locapoint/trunk
緯度経度が一つの情報として表されている為、既存のGeo::Coordinates::Converterではうまく扱えないため、converterの戻り値で使われるGeo::Coordinates::Converter::Pointにlocapointと言うメソッドを生やして、それを使っています。

使い方は

use Geo::Coordinates::Converter;
Geo::Coordinates::Converter->add_default_formats('locapoint');

my $geo = Geo::Coordinates::Converter->new(locapoint => 'SW8.HQ9.CR8.PU9', format => 'locapoint');
my $point = $geo->convert('degree');
print $point->lat;
print $point->lng;

という感じです。
tokyo測地系からLocaPointへデータを変換するには
use Geo::Coordinates::Converter;
Geo::Coordinates::Converter->add_default_formats('locapoint');

my $geo = Geo::Coordinates::Converter->new(lat => '40.41.20.904', lng => '-74.02.40.390', datum => 'tokyo');
my $point = $geo->convert(wgs84 => 'degree');
print $point->locapoint;

と書けます。
LocaPointはwgs84を使うそうなので、wgs84以外の値を入れた場合にはwgs84への変換が必須です。

測地系の変換はどうだか分からないけど、フォーマット変換には使えそうな予感がしました。

Posted by Yappo at 2006年11月07日 20:56 | TrackBack | Perl
Comments

済みません、別件で申し訳ありません。
先日以下の記事へコメントを入れさせていただいた者です。

http://blog.yappo.jp/yappo/archives/000312.html

認識いただいているか不安になったので最新エントリへメッセージさせていただきます。

連絡用の情報ですので、不要になったら削除してください。失礼しました。

Posted by: margay at 2006年11月10日 11:16
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。