この記事で扱っていること
- 住所検索apiを使用する方法
を紹介しています。
注意:すべてのエラーを確認しているわけではないので、記事の内容を実装する際には自己責任でお願いします。また、エラー配線は適当な部分があるので適宜修正してください。
住所の情報が必要な時に、郵便番号を入力すれば、その郵便番号から分かる都道府県や市区町村の情報を自動的に入力してくれるシステムはよく見かけると思います。
何かの情報登録をするという場面は、LabVIEWで作れるプログラムでも当然あり得ます。
そこで本記事ではLabVIEWで住所の自動入力を行うプログラムの例を紹介します。
HTTPのリクエストを送って住所情報を取得できるapiを利用します。
どんな結果になるか
簡単な例を紹介するために、郵便番号の入力欄と結果の表示のみとしています。
郵便番号を入力して実行することで、都道府県や市区町村およびそれらの読み仮名まで取得できます。
なお、郵便番号にはハイフンはあってもなくても使えます。
プログラムの構造
今回のプログラムで使用しているのは、以下のページで紹介されている郵便番号検索用のapiです。
http://zipcloud.ibsnet.co.jp/doc/api
HTTPリクエストはGET.viを使用しています。
GET.viで取得できた「本文」出力の状態では文字化けしてしまっているのですが、この文字列(JSON形式)をJSONから非平坦化することで文字化けを解消できます。
実際の住所入力フォーム例
もう少しそれっぽく、住所入力フォームを作る場合には、手入力にも対応できるように都道府県や市区町村を書き込む文字列制御器を置いておいて、郵便番号から自動入力する用のボタンを設けておくのがいいと思います。
メインVIは別にあるとして、この住所入力フォームをサブVIとして扱っている想定で例えば以下の図のような感じでしょうかね。
このサブVIの構造としては、イベントストラクチャを使用しています。
イベントは2つだけで、自動入力のボタンが押された場合とOKボタンが押された場合の値変更イベントを設けておきます。
なお、郵便番号が存在しない番号にしているとエラーが出るので、その際にはユーザーに警告を出すように1ボタンダイアログの関数を使用しています(エラーがない場合には何もしない)。
OKボタンの値変更イベントにて、文字列制御器の値を読み込ませるようにしています。
このイベント発生によってWhileループは終了するので、終了する直前の文字列制御器の値をWhileループに出すためにこのようにしておく必要があります。
この記事では、住所検索apiを使用する方法を紹介しました。
こういったapiを使用することでやれることの幅が大きく広がります。本ブログで他のapiを使用した別のアプリケーション例も紹介しているのでよかったらみてください。
ここまで読んでいただきありがとうございました。
コメント