先日のスクリプトだと住所が特定できない場合に福井県沖の座標が帰ってくるというバグがありましたので、その辺を修正。
あと緯度経度がマイナスのことも考慮していなかった(国内だとありえんけど)。
use strict;
use Jcode;
use LWP::Simple qw($ua get);
# ヨドバシカメラ梅田店の座標を取得
my $addr = jcode("大阪府大阪市北区大深町1-1")->utf8;
$addr =~ s/(\W)/'%' . unpack('H2', $1)/eg;
my $res = get("http://maps.google.co.jp/maps?q=$addr");
if($res =~ /<refinements><refinement>/si){
print "Error.";
}
elsif($res =~ /<center lat="([0-9\.\-]+)" lng="([0-9\.\-]+)"\/>/si){
my ($lat, $lng) = ($1, $2);
print "$lat, $lng";
}
この辺を取り込んだこんなのの作成を支援するWindowsアプリケーションをこそこそ開発中です。
近日中にβ版を公開できるかと。