Tips

郵便番号から住所への変換(その2)

日付2019/04/17
ID19-002
バージョンv17以降
プラットフォームWin, Mac

郵便番号から住所への変換は、インターネットに接続されている環境であれば、ネットで公開されているサービスを利用して簡単に行うことができます。以前、GoogleのAPIを利用した方法をご紹介しましたが、Googleの方針が変更になり以前のコードの利用ができなくなりましたので、今回Yahoo!のサービスを利用した方法をご紹介いたします。

Yahoo!のサービスを利用するためには、Yahoo!のアカウント登録をした後に「アプリケーションID」を取得する必要がありますのでご注意ください。

コードは4D v17から利用できるオブジェクト記法を使いましたので、コマンドでデータを得るのに比べて簡素な作りになっています。以前のGoogleのAPIを利用した方法と対して変わりはありませんが、オブジェクト記法のおかげですっきりとしたコードになりました。

  //■目的
  //引数に渡された郵便番号を住所に変換する

  //■使用例
  //C_TEXT($address)
  //$address:=本メソッド名($appID;"150-0043")  //東京都渋谷区道玄坂

  //■注意
  //このサンプルはYahoo!の郵便番号検索APIを利用しています
  //https://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/zipcodesearch.html
  //利用にはYahoo!アプリケーションIDの取得が必要です(上記URL参照)

C_TEXT($0;$address)
C_TEXT($1;$appID)
C_TEXT($2;$zip)

$appID:=$1  //Yahoo!より頂戴したアプリケーションID
$zip:=$2  //検索する郵便番号

  //URLを組み立てる
C_TEXT($url)
$url:="https://map.yahooapis.jp/search/zip/V1/zipCodeSearch?query="+$zip+"&appid="+$appID+"&output=json"

  //HTTPでサービスにアクセス
C_LONGINT($res_code)
C_OBJECT($responce)
$res_code:=HTTP Get($url;$responce)

//結果を抽出
Case of 
	: ($res_code#200)
		$address:="Error:リクエストエラー("+String($res_code)+")"
	: ($responce.Feature.length=0)
		$address:="Error:該当住所なし"
	Else 
		$address:=$responce.Feature[0].Property.Address
End case 

//結果を返す
$0:=$address