nuvi360 POI-Loader活用ツール
先日nuvi360を入手した。なんとこのポータブルナビにはGarminが公開しているPOI-Loaderというツールで目的地の位置情報リストを自作のcsvで設定できる。位置情報には速度による警報機能をつけたり、さらにはcsvごとにアイコンまで登録できる。(あと、リストのグループ設定がファイル単位以外でも設定できれば言うことないのだが…。)
こんなおもしろい機能を活用しないのはもったいないので、位置情報の取得を簡略化するツールをざくっと作成。ようはiタウンページとgoogle mapを自動巡回するスクリプトです。とりあえず公開。ライセンスはGPLです。まぁ、このページにたどり着くこと自体まれな気がしますが…。
ver 0.81 公開日2007.7.29。ver1.0まで到達するかは未定。
ver 0.82 公開日2008.4.30。久々に使ってみたら住所情報取得先のHPの構造が変わってたので修正。
ver 0.83 公開日2008.12.16。一部文字コードの処理を変更。
ver 0.85 公開日2008.12.18。mechanize-0.8.5で一部書き方が変わっていた部分を修正。
ファイル:nuvi_csvmaker.zip
旧ファイル:nuvi_csvmaker.old.zipmechanize-0.8.4以前だと動くかもしれない。
動作環境 WindowsXP/Ruby version 1.8.7(mswin32)/mechanize-0.8.5/hpricot 0.6.164 (mswin32)
使い方
まず適当なサイトを参考にしてrubyをインストールしてください。rubyがインストールできたらrubygemをインストールして標準ライブラリにはない'hpricot','mechanize'をインストールしてください。(わからん人にはこの時点でわけわからんかも…。)とりあえず上のリンクで説明すると、ここから1.8.7の最新ファイルを落としてきます。インストールのしかたはここです。このインストール方法でわからない場合いろいろ勉強してください。
あとrubygemを使うのにopensslとreadlineとzlibもいるようなので、ここで落としてきてください。openssl-0.9.8d-2-mswin32とreadline-4.3-2-mswin32とzlib-1.1.4-1-mswin32の日付のあたらしいほうのファイルを落として、解凍するとそれぞれrubyとおなじようなフォルダ構造となってますのでrubyをインストールしたディレクトリに上書きします。これでrubygemをインストールすればgemコマンドを使えるはずです。
ここまでくれば、コマンドプロンプトで'gem install hpricot'と'gem install mechanize'とそれぞれ実行すれば必要なライブラリがインストールされます。
これで実行環境がととのいました。
ダウンロードしたファイルを解凍して適当なフォルダに置いてください。置いたらDOS窓を開いて、スクリプトのあるディレクトリまで移動し、プロンプトで'ruby nuvi_csvmaker.rb'でプログラムの実行ができます。
実行すると以下のような文字が表示されます。
検索方法(半角数字で) 1)キーワード 2)業種 3) 店舗名:
お好きな検索方法を数字で選んでください。この絞り方はiタウンページとおなじです
リターンで確定すると次に
検索語:
とでてきますので検索方法にあわせたキーワードを入力てください
リターンで確定すると次に
地域(北海道/東北/関東/甲信越/北陸/東海/関西/中国/四国/九州)
住所情報(地域または県以下の住所):
住所情報(地域または県以下の住所):
とでてきますので、目的地域(北海道/東北/関東/甲信越/北陸/東海/関西/中国/四国/九州)または県以下の住所で入力してください。
検索結果が5000件を超えた場合警告もださず、からっぽのcsvを吐き出すことになります。
リターンで確定すると
:::出力先はスクリプト実行ディレクトリ
OUTPUT >> 検索語_住所情報.csv
作業中:
OUTPUT >> 検索語_住所情報.csv
作業中:
と出てきます。作業が進んでいれば作業中の下に検索結果が表示され続けます。
ファイル名は入力した検索語と住所情報を元に作成されています。
すべてが完了するとコマンドプロンプトがもどってきます。
スクリプト実行フォルダにcsvファイルができています。
うまく抽出されていない場合は、iタウンページで同じ条件で検索してみてちゃんと結果が返ってくるか確認してください。
さらに条件を絞り込むことを求められている場合はcsvの抽出はできません。
行あたりのフォーマットは
経度,緯度,"店舗名","[住所]郵便番号 住所 [電話]電話番号"
です。複数掲載の場合は電話番号は抽出されません。
POI-Loaderの使い方は自分で調べてください。英語ですが詳しいヘルプがついてます。自作アイコンも登録できて楽しいです。
(日本語版も出てるみたいだけど、触っていない… 2008.04.30追記)
注意事項
- 住所と場所を取得するのに、iタウンページとgoogleマップを利用しています。取得対象のページの仕様が変更された場合は多分動きません。またエラーハンドリングや、抽出条件が良くない場合の処理も作成していませんのであしからず。
- たまにiタウンページが怪しい住所を返したり、googleマップが怪しい位置情報を出すことがあります。これらに対するチェック法は思いつきませんでした。多少の補正機構は組み込みましたが効果不明。迷子になってもあわてて事故など起こさないで下さい。
- 全国の情報や、5000件を超えてエリア情報を一撃で取得するような機能は実装していません。これは情報提供元サイト様の仕様によります。
- 複数掲載の場合は電話番号は抽出されません。
- 抽出データの転載や商業利用は禁じます(iタウンページでの掲載情報やgoogle mapの位置情報の扱いを尊重します)。
- 特に積極的に修正していく予定はありません。気になる点や不具合はGPLに基づいて自分で修正してください。
- とはいいつつ、逆に予告なくダウンロードファイルの内容が変わっていることもあります。
免責事項
このスクリプトを利用したことによるあらゆる不利益についての責任は負いません。また、定期的なメンテナンスやバグ修正を行う義務は負いません。
気まぐれで公開したものですので気まぐれでこのサイトでの公開を取りやめることがあります。