Adobe Creative Suite 出力対応店一覧をGoogle Mapsで表示させる(15)
スポンサードリンク
アドビのCS5対応プリントショップのリストのページから、Google Mapsに表示させるやつの15回目。
前回は、Google Maps APIでうまくジオコーディングできない住所を特定し、それぞれどのようになっているか解析してみました。
今回は、京都市専用のジオコーダ「ジオどす」を使ってみて、京都市の住所のジオコーディングをやってみたいと思います。
まず、「ジオどす」(http://http://geodosu.com/)に行きます。
右側の「APIキー取得」を選択します。
所定の入力をして規約読んでチェックつけて「APIキー発行」ボタンを選択します。
これで、APIキーが書かれた電子メールが届きますので、APIキーを確認して、下記の様なプログラムを書いてみます。
Filename: test15.pl
#!/usr/bin/perl use strict; use warnings; use utf8; use YAML; use Encode; use WebService::Simple; my $geo = WebService::Simple->new( response_parser => 'JSON', base_url => 'http://api.geodosu.com/v2/geodosu2?', param => { apikey => '●●', output => 'json', preprocess => 'true', }, ); my $address = '京都府京都市下京区烏丸松原下ル五条烏丸町407-2烏丸KT第2ビル2F'; my $res = $geo->get( 'json', { address => $address } ); my $val = $res->parse_response(); print Dump( $val ); exit; __END__
実行してみると……
$ perl test15.pl --- result: addresses: detected: kana: まつばらどおり からすま さがる kanji: 松原通烏丸下ル roman: matsubara-dori karasuma sagaru input: 京都府京都市下京区烏丸松原下ル五条烏丸町407-2烏丸KT第2ビル2F pre_processed: 京都市下京区烏丸町4 coordinates: datum: {} estrange: lat: - 34.997674 - 34.997674 - 34.998886 - 34.998886 - 34.997674 lon: - 135.759294 - 135.760002 - 135.760002 - 135.759294 - 135.759294 estrange_ne: lat: 34.998886 lon: 135.760002 estrange_sw: lat: 34.997674 lon: 135.759294 point: lat: 34.99828 lon: 135.759703 copyright: ジオどすⅡ京都通り名ジオコーダー copyright 2009 All rights reserved by ジオどす・プロジェクト geocoded: 1 geocoder: geodosu2 $
これの、
point: lat: 34.99828 lon: 135.759703
が「ジオどす」でジオコーディングされた座標です。
あとは、このプログラムを今までのスクリプトに組み込めばいいのですが、その前に得られた座標の妥当性を確認しましょう。
得られた座標を「34.99828,135.759703」の様にコンマでつないで、Google Mapsの入力欄に入れてみます。
ちなみに、Google Mapsで、「京都府京都市下京区烏丸松原下ル五条烏丸町407-2烏丸KT第2ビル2F」から、通り名とビル名を取り去った「京都府京都市下京区五条烏丸町407-2」で検索したらこんな感じ。
……ジオどすのほうが正確じゃないってことで、ジオどすを使わない方向でいきたいと思います。
次回は、座標が取得できない住所が3か所も出ちゃったので、これをどのようにごまかすか、それには、辞書を用意しよう! ていうことをやってみたいと思います。
投稿 大野 義貴 [GoogleMaps] | 固定リンク |
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3418
ジオどすの上田と申します。
ジオどすをお使い頂きまして、どうもありがとうございます。
「京都府京都市下京区烏丸松原下ル」だけでは記事の目的地だけでなく、その周辺すべてその通り名表記ですので、ジオどすはそれらの代表点を返しています。そもそも通り名はアバウトな表記でピンポイントの場所を表すものではないので、そのあたり、ご容赦ください。(^^;)
ちなみに
>五条烏丸町407-2烏丸KT第2ビル2F」から、通り名とビル名を取り去った「京都府京都市下京区五条烏丸町407-2」で検索
と書かれていますが、「通り名住所」+「郵便住所」の複合表記の場合、通り名をカットすれば郵便住所になりますので、Googleなどのジオコーダでピンポイント検索ができます。
ジオどすで提供している、「ジオコーダ前処理API」はまさにそのためのAPIで、「通り名+郵便住所のときは通り名をカット」「ビル名らしきものがあればカット」を自動でやるようにしてます。ぜひお試しください!
今後ともジオどすをどうぞよろしくお願いします。
ジオどす
開発担当:上田
上田さん:
ジオどすのサービスをご提供いただきありがとうございます。
住所からジオコーディングする業務で、京都市内の住所の通り名部分をはずすとGoogleのジオコーダに通るという経験をしていたので、手動ではずす手続きを紹介してみましたが、今あらためてジオどすのAPIを見ますと、確かに「ジオコーダ前処理API」がありますね。
http://geodosu.com/ja/geodosu2-api.html#preprosessor_api
今度実際に使って見て、組み込んでみたいと思います。