3400件の住所データを緯度経度に変換する&地震速報システムの構築

現在、医療施設の検索サービスの構築でSQLを使ってて、最近MySQLを興味でも使い始めた。
とりあえず、SQL文で演算子が使えて高度な検索条件を指定できたりするから便利。それでもって、スマートフォン等の端末からの利用を想定してGPSによる地理情報とそれを処理するためにGoogle Map API v3も使い始めた。
依頼元から、3400件の医療施設の住所データ等をもらったので、PHPJavascript(非同期通信AjaxとGoogleMapAPI)を使って、SQLサーバー内の住所から緯度経度に変換する作業を行った。

AjaxもGoogleMapも、クエリーを送ったら帰ってくるまでブロッキングするのではなく、そのまま進んで受信割り込みのような物を使っているようだ。(クエリーを送って、受信するまでのウェイトがなかった。)
そのため、受信待ちをしているとずっと考えていたので残念なことに、クエリーを送信後に受信データを格納をやっていたので、データの受け渡しがうまくいってなかったようだ。そのため、

tid = setTimeout("timer()", 1000);

のように一定時間が経過したら強制的に受信データの処理ルーチンに飛ぶようにした。プログラム構造がすっきりしないのは我慢。とりあえず実装するためにはこの方法しかないようだ。
この方法をつかって、SetIntervalで1件あたりのデータ処理の時間を1秒とし、SQLからPHPの動的XML出力を介してAjaxで住所データを取得し、グーグルAPIサーバーにgeocodeのクエリーを送りつけて800ms後に受信データ処理。
それをupdate文でSQLサーバーのデータ更新をPHP経由で行う。

つまり、1秒に1件の割合でデータ処理を行うため、3400件以上のデータ処理には1時間程度かかった。
WiMAXIPアドレス稼げば、Googleサーバーに遅れるクエリーの数も増えるから作業効率2倍!なんて考えたけど、Googleサーバーをあんまり苛めたくなかったので自重した。あ、ちなみにクエリー送る間隔があまりにも短いと、エラーコード返してきます。はい。
ということで、次はGoogleMapの2点間の距離測定とやらを頑張ってみたいなと思いま。


今、地震速報システムを独自に構築しようかなと思っています。はい。

Q.どうやって地震検出を?
A.そこら辺の高専生や知り合いに、加速度センサー付きの基板とネット環境を使って観測
面白いとおもった人は高専生に限らず協力してくれるとうれしいかも

Q.そんなことして何になる?
A.特にない。自己満足。ただ、今開発中のP2Pによる情報ネットワークのテストも兼ねたいな、なんて。
ハイリスク、リータンあるかワカラナイ うぴょーww

Q.地震速報?そんな技術ある?
A.とりあえず、気象庁から加速度を震度階級に変換する流れが公開されていたので、震度表示はこれで。流れとしては、加速度をベクトル合成してフーリエ変換してフィルター介して逆フーリエ変換してデータ並べ替えて・・・って感じで出せた気がする。あとは震度階級の表から震度に変換。それをアラームとか携帯とかに贈りたいなって。

地層やプレートをある意味ブラックボックスとしてあつかって、入力波形と出力波形をニューラルネットワークか何かで解いて、震度予測とか。ごめんなさい、もうすでに自分の手に追えるレベルじゃないです。
→ただ、震度予測とかは無理にしろ、地震が起きたという情報をいち早く伝達できるシステムがほしい。気象庁地震速報はいろいろと申請がめんどくさいし、情報がオープンに公開されているわけではないし。だから独自でくみたいなって。もしできたら、情報をTCPIPとかでデータ送信とかサービス始められたらいいな。

Q.加速度センサーを間違えて落としたら?
きっと、最大震度7の通達が全国へ行くでしょう。もしシステムが普及すれば首都圏の一時麻痺とか?
うぴょーw イタズラっ子がいたら成り立たないシステムです

Q.楽しい?
A.はい

まあこんなトコロ。本格的にプロジェクト立ち上げたいけど、人工衛星の開発プロジェクトも忙しいけど、家庭の用事で最近は日曜日ずっと出かけてたり、レポートが4通溜まってたり、高専祭実行委員のステージのリーダーだったりー、、、もうわけがわからないよ。予算もないしね。そういえば、高専3年生になったし、そろそろ進路の事とか調べないといけないからこんなことしている暇ってそろそろ無くなりそう。つかないw

加速度センサー、秋月電子で購入しても1000円かかるし。データ処理用のマイコンでもH83664使えば1600円かかるし。カッコ付けてFT232モジュールでUSB接続なんてやったら+1000円かかるし。あばばばばばwww 軽い試算で4000円ぐらいかかるぞ。ひとつのノード構築に。こりゃまずい。まあ安価なPIC使えばもっとコスト押さえれそうだけど。ちなみに試作品つくって高専カンファレンスとかで発表したいなんて妄想もしてる。
学校の未来工房プロジェクトで申請すればどうかなと思ったけど、うちの衛星開発チームもこれに参戦しているわけで、チームを裏切ることはできない。

ああ、こんなこと書いている間に出かけないといけない。次のToDoリスト消化してきます。