--- title: 住所から経度と緯度を取得する author: kazu634 date: 2009-07-05 url: /2009/07/05/_1288/ wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4691;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - Perl ---

前回からの続きです。前回はHTMLの中でジオコーディングをしていましたが、今回は事前に経度と緯度を求めてHTMLを生成するように変更しようと考えました。これならHTMLを読み込んだときに、一気にアクセスが集中しないはずだから大丈夫…だと思う。

作成してみたコード

# === Libraries ===
use strict;
use warnings;
use Data::Dumper;
use Encode;
use utf8;
use WebService::Simple;
# === Main part ===
#!/usr/local/bin/perl
use strict;
use Geography::AddressExtract::Japan;
use encoding "utf8", STDOUT => "utf8";
# binmode STDOUT, ':utf8';
foreach my $addr (<DATA>) {
my $t = Geography::AddressExtract::Japan->extract($addr);
my $work = $t->[]->{"city"} . $t->[]->{"aza"} . $t->[]->{"number"};
print(encode('utf8', $work), "\n");
my $latlng = &getLatLng($work);
my ($lat, $lng) = split(/,/, $latlng);
print("Lat: $lat\nLng: $lng\n");
}
sub getLatLng() {
my $arg = shift();
my $geocode = WebService::Simple->new(
base_url => "http://maps.google.com/maps/geo",
param    => {
output => 'xml',
hl     => 'ja',
ie     => 'UTF8',
oe     => 'UTF8',
}
);
my $response = $geocode->get( { q => $arg, } );
if ($response->parse_response()->{Response}->{Status}->{code} == 200) {
return $response->parse_response()->{Response}->{Placemark}->{Point}->{coordinates};
} else {
return 'Not Found, Not Found';
}
}
__DATA__
東京都豊島区巣鴨1-15-1宮田ビル2階
東京都文京区本郷4-37-13文京センタ-地下1階
東京都品川区大崎1-6-4新大崎勧業ビル1階
東京都中野区中野5-61-2立見ビル2階
東京都中野区中野5-67-5長谷部ビル2階
東京都中央区銀座2-7-18藤田ビル地下1階
東京都中央区銀座2-5-5共同ビル西銀座1階
東京都中央区銀座2-8-15共同ビル銀座通り2階
東京都中央区銀座2-11-6竹田ビル1階
東京都中央区銀座3-3-11稲垣ビル2階
東京都中央区銀座6-12-10旭ビル1階
東京都中央区銀座5-15-1南海東京ビル2階
東京都中央区日本橋2-3-6日本土地ビル地下1階
東京都中央区日本橋本町1-1立石ビル1階
東京都中央区八重洲1-6-17八重洲勧業ビル1階
東京都中央区八重洲1-7-4矢満登ビル1階
東京都大田区大森北1-1-10朝日生命ビル地下1階
東京都大田区西蒲田8-1-7グランタウンビル2階
東京都台東区上野6-1-1小西本店ビル2階
東京都台東区上野4-10-7タツミビル地下1階
東京都台東区上野2-13-13キクヤビル地下1階
東京都台東区谷中7-20-6谷中ホ-ムズ1階
東京都千代田区五番町4番地2東プレビル1階
東京都千代田区富士見2-2-6今井ビル2階
東京都千代田区三崎町3-6-13寺本ビル1階
東京都千代田区内神田2-9-9神田ビル1階
東京都千代田区内神田3-21-8神田駅北口合同ビル2階
東京都千代田区鍛冶町2-1-4東和ビル2階
東京都千代田区有楽町1-6-1第2日比谷ビル2階
東京都千代田区外神田1-16-10ニュー秋葉原センタービル地下1階
東京都千代田区外神田1-11-6小暮ビル2階
東京都千代田区神田佐久間町1-18信交ビル2階
東京都杉並区阿佐ヶ谷南2-14-10倉橋ビル地下1階
東京都杉並区高円寺北2-4-4一栄ビル2階
東京都新宿区西新宿1-24-1エステック情報ビル地下1階
東京都新宿区西新宿1-17-1日本生命西新宿ビル2階
東京都新宿区西新宿1-5-11三葉ビル地下1階
東京都新宿区西新宿7-23-2西鉄イン1階
東京都新宿区新宿2-19-1ビッグスビル地下2階
東京都新宿区新宿3-4-1東新宿ビル地下2階
東京都新宿区市谷田町1-3片倉ビル2階
東京都新宿区四谷1-3-22
東京都新宿区歌舞伎町1-3-5相模ビル1階
東京都新宿区歌舞伎町1-14-4川新ビル2階
東京都新宿区歌舞伎町1-26-6灯ビル2階
東京都新宿区西新宿7-1-1みやこビル2階
東京都新宿区西新宿7-9-7新宿ニッカビル1階
東京都新宿区百人町1-18-8大久保角ビル2階
東京都新宿区百人町2-11-25新戸山ビル2階
東京都新宿区高田馬場2-18-6柳屋ビル1階
東京都新宿区高田馬場2-14-2原田ビル地下1階
東京都新宿区高田馬場1-34-8大輝ビル地下1階
東京都新宿区高田馬場1-34-12竹内ビル1階
東京都渋谷区代々木1-30-6第一U・Iビル1階
東京都渋谷区千駄ヶ谷1-30-8ダヴィンチ千駄ヶ谷1階
東京都渋谷区桜丘町15-15NKG東京第二ビル2階
東京都渋谷区渋谷2-17-5シオノギ渋谷ビル2階
東京都渋谷区宇田川町36-2ノアビル2階
東京都渋谷区渋谷1-16-14渋谷地下鉄ビル2階
東京都荒川区西日暮里5-23-6ホワイトハウス2階
東京都荒川区東日暮里5-51-11静屋ビル2階
東京都港区赤坂3-10-2赤坂コマースビル2階
東京都港区新橋4-10-2ホテルサンルート新橋2階
東京都港区新橋1-17-2光和ビル地下1階
東京都港区芝5-34-7田町センタービル1階
東京都港区芝大門2-3-1常泉ビル2階
東京都港区港南2-3-29シ-ゲンビル1階
東京都港区高輪3-25-22カネオビル1階
東京都江東区亀戸2-20-7百万両ビル2階
東京都葛飾区東金町1-42金子ビル1階
東京都立川市柴崎町3-4-14ベルトリーサビル2階
東京都立川市曙町2-13-10賀屋登ビル2階
東京都立川市曙町2-9-1菊屋川口ビル2階
東京都武蔵野市中町1-6-7朝日生命ビル1階及び2階
神奈川県横浜市中区元町1-18石川ビル1階
神奈川県横浜市中区港町2-6横浜関内ビル2階
神奈川県横浜市中区伊勢佐木町2-66伊勢佐木町満利屋ビル2階
神奈川県横浜市鶴見区鶴見中央1-3-3クレインビル2階
神奈川県鎌倉市小町1-6-19アラビル2階
神奈川県鎌倉市大船1-7-1サザンウインズ大船ビル2階
神奈川県川崎市川崎区駅前本町3-3ムラタビル2階
神奈川県川崎市川崎区砂子1-1-10夏原ビル2階
神奈川県足柄下郡箱根町湯本白石下706-35箱根登山鉄道湯本駅前ビル2階
埼玉県川越市脇田町103川越マイン3階
千葉県市川市八幡2-6-15川長ビル地下1階

実行結果

~/working/tmp_perl/projects/scrape/starbucks on simoom634 [599] $: perl ./address.pl
東京都豊島区巣鴨1-15-1
Lat: 139.7398948
Lng: 35.7331675
東京都文京区本郷4-37-13
Lat: 139.7599332
Lng: 35.7080096
東京都品川区大崎1-6-4
Lat: 139.7293858
Lng: 35.6197692
東京都中野区中野5-61-2
Lat: 139.6663186
Lng: 35.7067903
東京都中野区中野5-67-5
Lat: 139.6653381
Lng: 35.7081818
東京都中央区銀座2-7-18
Lat: 139.7675810
Lng: 35.6733528
東京都中央区銀座2-5-5
Lat: 139.7669699
Lng: 35.6739055
東京都中央区銀座2-8-15
Lat: 139.7676699
Lng: 35.6727390
東京都中央区銀座2-11-6
Lat: 139.7690560
Lng: 35.6723169
東京都中央区銀座3-3-11
Lat: 139.7652145
Lng: 35.6727445
東京都中央区銀座6-12-10
Lat: 139.7642480
Lng: 35.6688283

「ルノアール」に関連する最近のエントリ