Tips

郵便番号から住所への変換

日付2014/12/11
ID14-011
バージョン14以降
プラットフォームWin, Mac

この記事は、最新ではないバージョンに関連した方法について解説しています。

最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。

郵便番号から住所への変換は、インターネットに接続されている環境であれば、とても簡単に行うことができます。Googleが公開しているサービスのGoogle Geocoding APIを利用して、郵便番号から住所を得ることができます。サービスが利用できる環境であれば、住所データベースを自分で用意する必要が無く、また自分でデータベースのメンテナンスをする必要もありませんから、管理は非常に楽になります。

Googleのサービスの詳細につきましては、下記URLのページをご参照ください

Google Geocoding API: https://developers.google.com/maps/documentation/geocoding/?hl=ja

例題メソッド

次の例題メソッドは、1つの引数を持ち、引数に郵便番号を渡すことで戻り値として住所を得ることができます。

Begin SQL
/*

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

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

■注意
このサンプルはGoogle Geocoding APIを利用しています
https://developers.google.com/maps/documentation/geocoding/?hl=ja

*/
End SQL

C_TEXT($1)
C_TEXT($0)

  //Google Map利用
C_TEXT($uri)
$uri:="https://maps.googleapis.com/maps/api/geocode/json?language=ja&sensor=false&address="+$1

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

If ($res_code=200)

  //検索ステータスを確認する
C_TEXT($res_status)
$res_status:=OB Get($responce;"status";Is text)

If ($res_status="OK")

  //返されたJSON配列を分解
ARRAY OBJECT($res_main;0)
ARRAY OBJECT($res_sub;0)
OB GET ARRAY($responce;"status";$res_main)
OB GET ARRAY($responce;"results";$res_main)
OB GET ARRAY($res_main{1};"address_components";$res_sub)

  //住所を抽出
$0:=OB Get($res_sub{4};"long_name";Is text)\
+OB Get($res_sub{3};"long_name";Is text)\
+OB Get($res_sub{2};"long_name";Is text)

Else 

$0:="Error: 該当住所無し"

End if 

Else 

$0:="Error: "+String($res_code)

End if 

注:Begin SQL~End SQL間のSQL文はすべてコメントとしてSQLを利用しています。実際の動作にはSQLは関係ありません。