Google Mapsを介して座標取得するPerlスクリプト
Google Maps APIで点処理をする際に必要になる座標データ。
APIにもこれを特定する系統のものがないのですが、これをチマチマ調べてるのも鬱陶しいだろうなということでGoogle Mapsに問い合わせて解決するという泥臭い方法をとってみました。
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 =~ /<center lat="([0-9\.]+)" lng="([0-9\.]+)"\/>/si){
my ($lat, $lng) = ($1, $2);
print "$lat,$lng";
}
住所によるMaps検索のレスポンスデータ内にある中央座標の要素を横取りするというものです。
住所による検索がどの程度の精度で拾えるかというのが一番の問題かも(笑)