図書館の位置情報を取得する
Google Map APIさんの力を借りて図書館の位置情報をまとめてゲットする。使い捨て。
[lib.pl,UTF8] #!/usr/bin/perl use strict; use warnings; use HTTP::Request::Common; use LWP::UserAgent; use JSON; use Readonly; Readonly my $APIKEY => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; Readonly my @NAMES => ( '渋谷区立中央図書館', '渋谷区立西原図書館', '渋谷区立渋谷図書館', '渋谷区立富ヶ谷図書館', '渋谷区立笹塚図書館', '渋谷区立本町図書館', '渋谷区立臨川みんなの図書館'); foreach my $name(@NAMES) { my $obj = JSON->new->jsonToObj(geocoding($name)); print 200 == $obj->{Status}->{code} ? "$obj->{Placemark}[0]->{address},$obj->{Placemark}[0]->{Point}->{coordinates}[0],$obj->{Placemark}[0]->{Point}->{coordinates}[1]\n" : "$name,-,-\n"; sleep 1; } sub geocoding { my ($name) = @_; my $ua = LWP::UserAgent->new; $ua->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)'); my $url = sprintf('http://maps.google.com/maps/geo?q=%s&output=json&key=%s', $name, $APIKEY); my $resp = $ua->get($url); $resp->is_success or die "failed to get $url"; return $resp->content; }
T:\work>lib.pl | nkf -s (日本)渋谷区立中央図書館,139.705664,35.672351 (日本)渋谷区立西原図書館,139.677675,35.674967 (日本)渋谷区立渋谷図書館,139.709764,35.656595 (日本)渋谷区立富ヶ谷図書館,139.687124,35.668501 (日本)渋谷区立笹塚図書館,139.667192,35.67225 (日本)渋谷区立本町図書館,139.681658,35.680735 渋谷区立臨川みんなの図書館,-,- T:\work>