アオカケスの鳥かご

日々の出来事を綴っていきたい

現在地の住所を表示するだけのwebアプリ

以前Google Maps APIの中の1つであるGeocoding APIを使って緯度経度情報から住所を表示するwebアプリを作りました。

aokakes.hatenablog.com

 

Geocoding APIのときの記事をアップした時点で緯度経度情報と住所を結び付けたCSVファイルは用意できていたので、これをデータベースに登録して検索できるようにします。

ちなみに郵便番号は諦めました。

 

データベースに登録するのは骨が折れました。ファイルサイズが232MBですからね。

最初は1つずつinsertすればいいだろうとか思っていましたが、このサイズだとどうやら現実的ではないようです。

 

こちらが参考になりました。

qiita.com

 

巨大なファイルからデータベースに登録するにはLOAD DATA INFILEを使うのが定番なようです。

ながら作業でやっていたので実際にどれぐらいかかったのかはちょっと分からないのですが、結構早かった気がします。

 

xamppでテストしながらやっていたので、さくらのデータベースへの移行作業も行います。

こちらが参考になりました。

zaka-think.com

 

私がインポートしたい.sqlファイルは352MBでしたが、この方法で問題なくアップロードできました。1分ぐらいで終わりました。

 

とりあえずここに置いてます。

https://aokakes.sakura.ne.jp/city-complete/

 

city-completeという名前は、市レベルならまず間違いなく当てられるだろうという思いから付けました。町レベルだと微妙に外すので...

 

検索にはちょっと時間がかかります。5秒弱ぐらい。

通信量はGeocoding APIのときと変わらず10KBほど。

 

実際に自分で作ってみてgoogleの偉大さを再認識しました。自前のやつは5秒かかりますがGeocoding APIは一瞬ですからね。

もうちょっと工夫すれば検索速度は少しは改善できそうですけど1秒を切れる気はしません。

google先生は一体どのような方法で検索しているのでしょうか。

 

 

ソースコードです。

緯度経度を取得したらjQueryでpost送信し、検索結果が返ってきたら表示します。

 

送信先php 

 

ところで、クエリの呼び方ってサイトごとに結構違ってて結局どれが一番良いのかいまいち分かってません。まぁ静的プレースホルダが一番なんでしょうけど。

 

というわけで、これでAPIの使用回数が無制限になりました。ここから何かに繋げていければいいんですけどね~

難しそうです。