Adobe Creative Suite 出力対応店一覧をGoogle Mapsで表示させる(11)
スポンサードリンク
アドビのCS5対応プリントショップのリストのページから、Google Mapsに表示させるやつの11回目。
前回は、Google Geocoding APIを使い、住所から緯度/経度を取得するのを、Webブラウザからやってみました。
今回は、PerlからGoogle Geocoding APIにアクセスして情報を取得してみようと思います。
PerlからWebサービスにアクセスするのに便利な、WebService::Simpleというモジュールがありますので、これを使います。
あらかじめ、WebService::SimpleをCPANから取得してインストールしておいてください。
使い方は、
WebService::Simple - search.cpan.org [search.cpan.org]
を参照。ポイントは、返ってくる情報はJSONですので、パーサをJSONにしておくことです。
Filename: test10.pl
use strict;
use warnings;
use utf8;
use WebService::Simple;
use Data::Dumper;
my $geo = WebService::Simple->new(
response_parser => 'JSON',
base_url => 'http://maps.google.com/maps/api/geocode/',
param => {
region => 'jp',
language => 'ja',
sensor => 'false',
},
);
my $address = '東京都港区台場2-4-8';
my $res = $geo->get( 'json', { address => $address } );
my $val = $res->parse_response();
print Dumper $val;
exit;
__END__
実行結果はこちら。
$VAR1 = {
'status' => 'OK',
'results' => [
{
'formatted_address' => "\x{e6}\x{97}\x{a5}\x{e6}\x{9c}\x{ac}, \x{e6}\x{9d}\x{b1}\x{e4}\x{ba}\x{ac}\x{e9}\x{83}\x{bd}\x{e6}\x{b8}\x{af}\x{e5}\x{8c}\x{ba}\x{e5}\x{8f}\x{b0}\x{e5}\x{a0}\x{b4}\x{ef}\x{bc}\x{92}\x{e4}\x{b8}\x{81}\x{e7}\x{9b}\x{ae}\x{ef}\x{bc}\x{94}\x{e2}\x{88}\x{92}\x{ef}\x{bc}\x{98}",
'types' => [
'sublocality_level_4',
'sublocality',
'political'
],
'address_components' => [
{
'types' => [
'sublocality_level_4',
'sublocality',
'political'
],
'short_name' => "\x{ef}\x{bc}\x{98}",
'long_name' => "\x{ef}\x{bc}\x{98}"
},
{
'types' => [
'sublocality_level_3',
'sublocality',
'political'
],
'short_name' => "\x{ef}\x{bc}\x{94}",
'long_name' => "\x{ef}\x{bc}\x{94}"
},
{
'types' => [
'sublocality_level_2',
'sublocality',
'political'
],
'short_name' => "\x{ef}\x{bc}\x{92}\x{e4}\x{b8}\x{81}\x{e7}\x{9b}\x{ae}",
'long_name' => "\x{ef}\x{bc}\x{92}\x{e4}\x{b8}\x{81}\x{e7}\x{9b}\x{ae}"
},
{
'types' => [
'sublocality_level_1',
'sublocality',
'political'
],
'short_name' => "\x{e5}\x{8f}\x{b0}\x{e5}\x{a0}\x{b4}",
'long_name' => "\x{e5}\x{8f}\x{b0}\x{e5}\x{a0}\x{b4}"
},
{
'types' => [
'locality',
'political'
],
'short_name' => "\x{e6}\x{b8}\x{af}\x{e5}\x{8c}\x{ba}",
'long_name' => "\x{e6}\x{b8}\x{af}\x{e5}\x{8c}\x{ba}"
},
{
'types' => [
'administrative_area_level_1',
'political'
],
'short_name' => "\x{e6}\x{9d}\x{b1}\x{e4}\x{ba}\x{ac}\x{e9}\x{83}\x{bd}",
'long_name' => "\x{e6}\x{9d}\x{b1}\x{e4}\x{ba}\x{ac}\x{e9}\x{83}\x{bd}"
},
{
'types' => [
'country',
'political'
],
'short_name' => 'JP',
'long_name' => "\x{e6}\x{97}\x{a5}\x{e6}\x{9c}\x{ac}"
}
],
'geometry' => {
'viewport' => {
'southwest' => {
'lat' => '35.6235301',
'lng' => '139.7711484'
},
'northeast' => {
'lat' => '35.6298253',
'lng' => '139.7774436'
}
},
'location' => {
'lat' => '35.6266777',
'lng' => '139.774296'
},
'location_type' => 'APPROXIMATE'
}
}
]
};
緯度は、$val->{results}->[0]->{geometry}->{location}-{lat}
経度は、$val->{results}->[0]->{geometry}->{location}-{lng}
で得られます。
次回は、アドビのサイトから取得した住所を使って、それぞれの印刷会社の所在地の座標を取得してみたいと思います。
投稿 大野 義貴 [GoogleMaps] | 固定リンク |
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3392





![: Amazon.co.jp: プラスティック・メモリーズ 1【完全生産限定版】(イベントチケット優先販売申込券付) [Blu-ray]](/lists/_9/B00VWX66E8.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 2【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66K2.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 3【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6MV0.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 4【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX66IO.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 5【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX6Y0E.jpg)
![: Amazon.co.jp: プラスティック・メモリーズ 6【完全生産限定版】[Blu-ray]](/lists/_9/B00VWX69D6.jpg)


コメントする