プログラマでありたい

おっさんになっても、プログラマでありつづけたい

郵便番号から緯度経度情報を取得するには?

郵便番号マップを作ってみた

ビジュアライジング・データ ―Processingによる情報視覚化手法 を読んでたら「アメリカの郵便番号を地図上に図示する」という例が出てきたので、これの日本版を作ってみました。

 面白いエントリーが挙がっていました。続編が楽しみです。
実は、私も同じようなことしたことがあります。
郵便番号から緯度経度情報を取得する

 郵便番号から緯度経度を取得できるデータは無いだろうかと探してみました。私が探した限りでは、無料のものでは限定された情報のものしか見つけられませんでした。ということで、無ければデータを作ってしまおうと方法を考えました。郵便番号と住所の情報は、郵政省から簡単にダウンロードできます。問題となるのが、緯度経度情報。GoogleMaps APIの最近のバージョンでは、geocodingの情報を返してくれるので、その二つを組み合わせれば目的のデータは取得できそうです。

 GeocodeのCPANモジュールは、宮川さんのGeo::Coder::Googleと、それをラップしたGeo::Coder::GoogleMapsの二つがあります。基本的な機能は一緒ですが、今回はGeo::Coder::GoogleMapsを使いました。

※Geo::Coder::GoogleMapsはXML::LibXMLを必要とするのですが、これを入れるのが面倒くさいです。インストール手順は、また別途記述します。


 続きを書くと言いながら、凄まじく放置です。いい加減だなぁw
 一通りやってマップまで出したのですが、ソース紛失しました。HDDクラッシュの時に、どっかいったのでしょうね。手法的には、以下の方法で可能です。
・郵政省から郵便番号データ全件を取得する
・Geo::Coder::GoogleMapsを使って、住所から経度緯度を取得する
  (サンプルは、こちら
・その経度緯度情報を、郵便番号に紐づける
・郵便番号マップの作成(私は、pajeckを使いました)


 GoogleMapsを短時間で叩きすぎると、アクセス禁止されるのでその辺りが肝かなぁ。
せっかくなんで、もう一度やろうと思います。ビジュアライジング・データも買ったことだし。