#!/usr/bin/env perl use strict; use warnings; use LWP::Simple; use URI::Escape; my $appid = "(YOUR APP ID)"; while (<>) { chomp; my @r = address_to_latlong({key => $_, appid => $appid}); print join("\t", @r, $_)."\n"; } sub address_to_latlong { my ($args_ref) = @_; my $ek = URI::Escape::uri_escape($args_ref->{key}); my $murl = "http://geo.search.olp.yahooapis.jp/OpenLocalPlatform/V1/geoCoder" ."?appid=$args_ref->{appid}&query=$ek&datum=tky"; my $r = get($murl); my ($lat, $long) = $r =~ m{<Coordinates>(.+?),(.+?)</Coordinates>}; return ($lat||"", $long||""); }
(「住所の一部」でないクエリは、結果が返って来ません)% cat address2latlong-test.txt 東京都渋谷区 東京都港区 神奈川県横浜市中区 神奈川県足柄上郡山北町 こんにちは 東京タワー 東京ミッドタウン % ./address2latlong.pl address2latlong-test.txt 139.69822020 35.66403830 東京都渋谷区 139.75160740 35.65807070 東京都港区 139.64218630 35.44470240 神奈川県横浜市中区 139.08383880 35.36060800 神奈川県足柄上郡山北町 こんにちは 東京タワー 東京ミッドタウン