京都コンピュータ学院の資料請求Webページの
https://support.kcg.ac.jp/kcg/apply.cgi
郵便番号から住所へ変換を以前作りました。
これについて。
この手のプログラムは,ほとんど別ウインドウが出てきて,確認のクリックを行う。
また,完全に一致するものしか,表示しないものが多い。JavaScriptが使えないとだめな場合が多い。
外部サービスはセキュリティ的に心配。
なので,独自ですることに。
ただ,作るからには,性能的に劣るものを作るのは,意味がないので色々工夫をする。
仕様:
・郵便番号が不完全や少しの間違いでも,ある程度の住所を表示する。
・JavaScriptは使わない。
・別ウインドウは使わない。
・1ページでやるけど,入力済みの他データが途中で消えたりしない
・番地入力わすれをしないように工夫する。
自動で出てくると,住所を全部いれた気分になりやすく,
番地をいれない人が多い。その対策もしておく。
方法:
変換データは以下から自由に入手できる。
http://www.post.japanpost.jp/zipcode/download.html
このデータをプログラムで加工して,
高速処理できるように最適化してから使います。
(必要な部分だけ取り出したCSVを生成するだけですが。)
さらに単純に一致する郵便番号を探すだけではなく,
微妙に間違えたり,一部しか郵便番号を入れていない場合でも,
近い郵便番号を探して出力しています。
たとえば,601-8407を入力すれば
601-8407の7桁 で検索し,あれば,それをなければ以下を処理
最後の2桁を00に書き換えるもしくは,601-84 の様に最後の2桁が
ない場合は,00を付け加えて,再度検索。
601-8400の5桁+00 で,後ろの2桁を00に書き換えて検索。
601-84 とか 601-8499 の様に下2桁を間違えても,ある程度対応し,
近い住所を表示する。
これでも見つからない場合は,
後ろの4桁を0000にして,同様に検索。
601-0000の3桁+0000
最初の3桁しか入力しないとか,後ろの4桁が間違っている場合に対応。
これでも見つからない場合は,発見できないと表示します。