Postal Search Ajax API ダイジェスト
Postal Search Ajax API の使い方を紹介します。
目次
- Postal オブジェクト
 - Japan オブジェクト
 - Postal.Lookup クラス
 - Postal.Coder クラス
 
Postal オブジェクト
ブラウザで使えるかどうか調べる
本 API がブラウザで使えるかどうかは Postal オブジェクトの isCompatible メソッドを使って調べます。
  if (Postal.isCompatible())
    alert('このブラウザで使えます!');
  else
    alert('このブラウザでは使えません!');
API のバージョンを調べる
本 API のバージョンは Postal オブジェクトの version プロパティを使って調べます。
  alert('バージョン: ' + Postal.version);
Japan オブジェクト
都道府県を列挙し、そのふりがな、地方公共団体コード、緯度経度を取得する
Japan オブジェクトの arr プロパティは、都道府県のオブジェクトの配列です。都道府県のふりがな、地方公共団体コード、緯度経度は、そのオブジェクトのプロパティを使って取得します。
  for (var i=0; i<Japan.arr.length; i++) {
    var pref = Japan.arr[i];
    alert([
      pref.a, // 都道府県
      pref.k, // フリガナ
      pref.h, // ふりがな
      pref.r, // ローマ字
      pref.g, // 地方公共団体コード
      pref.x, // 経度
      pref.y  // 緯度
    ].join(' '));
  }
指定した都道府県のふりがな、地方公共団体コード、緯度経度を取得する
都道府県のふりがな、地方公共団体コード、緯度経度は、そのオブジェクトのプロパティを使って取得します。
  // 北海道
  var pref = Japan.Hokkaido;
  alert([
    pref.a, // 都道府県
    pref.k, // フリガナ
    pref.h, // ふりがな
    pref.r, // ローマ字
    pref.g, // 地方公共団体コード
    pref.x, // 経度
    pref.y  // 緯度
  ].join(' '));
  // 東京都
  pref = Japan.Tokyo;
  alert([
    pref.a, // 都道府県
    pref.k, // フリガナ
    pref.h, // ふりがな
    pref.r, // ローマ字
    pref.g, // 地方公共団体コード
    pref.x, // 経度
    pref.y  // 緯度
  ].join(' '));
  // 沖縄県
  pref = Japan.Okinawa;
  alert([
    pref.a, // 都道府県
    pref.k, // フリガナ
    pref.h, // ふりがな
    pref.r, // ローマ字
    pref.g, // 地方公共団体コード
    pref.x, // 経度
    pref.y  // 緯度
  ].join(' '));
Postal.Lookup クラス
郵便番号の住所を検索する
郵便番号の住所を検索するときは Postal.Lookup クラスの send メソッドを使います。send メソッドは、指定した郵便番号の住所を非同期で検索します。検索が成功すると Postal.Lookup クラスの onload イベントが、失敗すると onerror イベントが発生します。
  var lookup = new Postal.Lookup();
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  lookup.send('160-0021');
郵便番号の書式をチェックする
郵便番号の書式をチェックするときは Postal.Lookup クラスの send メソッドを使います。send メソッドは、郵便番号の書式に誤りがあるとき、戻り値に false を返します。このときイベントは発生しません。
  var lookup = new Postal.Lookup();
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  if (!lookup.send('foo-bar'))
    alert('郵便番号の書式に誤りがあります!');
住所が見つからないとき
検索が成功すると Postal.Lookup クラスの onload イベントが発生します。住所が見つからないときは Postal.Lookup クラスの response プロパティが空の配列になります。
  var lookup = new Postal.Lookup();
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
    if (lookup.response.length == 0)
      alert('住所が見つかりません!');
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  lookup.send('160-9999');
住所が見つかったとき
検索が成功すると Postal.Lookup クラスの onload イベントが発生します。住所が見つかったときは Postal.Lookup クラスの response プロパティが住所のオブジェクトの配列になります。
  var lookup = new Postal.Lookup();
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
    if (lookup.response.length >= 1)
      alert('住所が見つかりました!');
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  lookup.send('160-0021');
複数の住所が見つかったとき
検索が成功すると Postal.Lookup クラスの onload イベントが発生します。住所が見つかったときは Postal.Lookup クラスの response プロパティが住所のオブジェクトの配列になります。
  var lookup = new Postal.Lookup();
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
    for (var i=0; i<lookup.response.length; i++)
      alert('住所が見つかりました!');
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  lookup.send('072-0819');
見つかった住所とフリガナを取得する
Postal.Lookup クラスの response プロパティは、住所のオブジェクトの配列です。見つかった住所とフリガナは、住所のオブジェクトの a プロパティと k プロパティを使って取得します。
  var lookup = new Postal.Lookup();
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
    for (var i=0; i<lookup.response.length; i++) {
      alert('住所が見つかりました!');
      var addr = lookup.response[i];
      alert('郵便番号: ' + addr.c); 
      alert('住所: ' + addr.a);
      alert('フリガナ: ' + addr.k); 
    }
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  lookup.send('072-0819');
見つかった住所の地方公共団体コードを取得する
Postal.Lookup クラスの response プロパティは、住所のオブジェクトの配列です。見つかった住所の 地方公共団体コード は、住所のオブジェクトの g プロパティを使って取得します。
  var lookup = new Postal.Lookup();
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
    for (var i=0; i<lookup.response.length; i++) {
      alert('住所が見つかりました!');
      var addr = lookup.response[i];
	  alert('地方公共団体コード: ' + addr.g); 
	}
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  lookup.send('160-0021');
見つかった住所の緯度と経度を取得する
Postal.Lookup クラスの response プロパティは、住所のオブジェクトの配列です。見つかった住所の緯度と経度は、住所のオブジェクトの x プロパティと y プロパティを使って取得します。
  var lookup = new Postal.Lookup();
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
    for (var i=0; i<lookup.response.length; i++) {
      alert('住所が見つかりました!');
      var addr = lookup.response[i];
	  alert('緯度: ' + addr.y); 
	  alert('経度: ' + addr.x); 
	}
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  lookup.send('160-0021');
エラーが起きたとき
検索が失敗すると Postal.Lookup クラスの onerror イベントが発生します。
  var lookup = new Postal.Lookup({timeout: 1});
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  lookup.send('160-0021');
エラーの原因を調べる
検索が失敗すると Postal.Lookup クラスの onerror イベントが発生します。エラーの原因は Postal.Lookup クラスの status プロパティと statusText プロパティを使って調べます。
  var lookup = new Postal.Lookup({timeout: 1});
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
	alert('コード: ' + lookup.status);
	alert('メッセージ: ' + lookup.statusText);
  };
  lookup.send('160-0021');
検索を中止する
検索を中止するときは Postal.Lookup クラスの abort メソッドを使います。このときイベントは発生しません。
  var lookup = new Postal.Lookup();
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  lookup.send('160-0021');
  lookup.abort();
検索のタイムアウト時間を長くする
検索のタイムアウトを長くするときは Postal.Lookup クラスのコンストラクタを使います。タイムアウトの初期値は30秒です。通常は変更せずそのまま使います。
  var lookup = new Postal.Lookup({timeout: 60});
  lookup.onload = function() {
    alert('onload イベントが発生しました!');
  };
  lookup.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  lookup.send('160-0021');
Postal.Coder クラス
住所の単語から郵便番号を検索する
住所の単語から郵便番号を検索するときは Postal.Coder クラスの send メソッドを使います。send メソッドは、指定した住所の単語から郵便番号を非同期で検索します。検索が成功すると Postal.Coder クラスの onload イベントが、失敗すると onerror イベントが発生します。
  var coder = new Postal.Coder();
  coder.onload = function() {
    alert('onload イベントが発生しました!');
  };
  coder.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  coder.send('横浜');
住所の単語の書式をチェックする
住所の単語の書式をチェックするときは Postal.Coder クラスの send メソッドを使います。send メソッドは、住所の単語が空(スペースを含む)のとき、戻り値に false を返します。このときイベントは発生しません。
  var coder = new Postal.Coder();
  coder.onload = function() {
    alert('onload イベントが発生しました!');
  };
  coder.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  if (!coder.send(' '))
    alert('住所の単語が空(スペース含む)です!');
郵便番号が見つからないとき
検索が成功すると Postal.Coder クラスの onload イベントが発生します。郵便番号が見つからないときは Postal.Coder クラスの response プロパティが空の配列になります。
  var coder = new Postal.Coder();
  coder.onload = function() {
    alert('onload イベントが発生しました!');
    if (coder.response.length == 0)
      alert('郵便番号が見つかりません!');
  };
  coder.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  coder.send('北方領土');
郵便番号が見つかったとき
検索が成功すると Postal.Coder クラスの onload イベントが発生します。郵便番号が見つかったときは Postal.Coder クラスの response プロパティが住所のオブジェクトの配列になります。
  var coder = new Postal.Coder();
  coder.onload = function() {
    alert('onload イベントが発生しました!');
    if (coder.response.length >= 1)
      alert('郵便番号が見つかりました!');
  };
  coder.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  coder.send('横浜');
複数の郵便番号が見つかったとき
検索が成功すると Postal.Coder クラスの onload イベントが発生します。郵便番号が見つかったときは Postal.Coder クラスの response プロパティが住所のオブジェクトの配列になります。
  var coder = new Postal.Coder();
  coder.onload = function() {
    alert('onload イベントが発生しました!');
    for (var i=0; i<coder.response.length; i++)
      alert('郵便番号が見つかりました!');
  };
  coder.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  coder.send('道頓堀');
見つかった郵便番号を取得する
Postal.Coder クラスの response プロパティは、住所のオブジェクトの配列です。見つかった郵便番号は、住所のオブジェクトの c プロパティを使って取得します。
  var coder = new Postal.Coder();
  coder.onload = function() {
    alert('onload イベントが発生しました!');
    for (var i=0; i<coder.response.length; i++) {
      alert('郵便番号が見つかりました!');
	  var addr = coder.response[i];
	  alert('郵便番号: ' + addr.c); 
	}
  };
  coder.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  coder.send('五稜郭町');
エラーが起きたとき
検索が失敗すると Postal.Coder クラスの onerror イベントが発生します。
  var coder = new Postal.Coder({timeout: 1});
  coder.onload = function() {
    alert('onload イベントが発生しました!');
  };
  coder.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  coder.send('横浜');
エラーの原因を調べる
検索が失敗すると Postal.Coder クラスの onerror イベントが発生します。エラーの原因は Postal.Coder クラスの status プロパティと statusText プロパティを使って調べます。
  var coder = new Postal.Coder({timeout: 1});
  coder.onload = function() {
    alert('onload イベントが発生しました!');
  };
  coder.onerror = function() {
    alert('onerror イベントが発生しました!');
    alert('コード: ' + coder.status);
    alert('メッセージ: ' + coder.statusText);
  };
  coder.send('横浜');
検索を中止する
検索を中止するときは Postal.Coder クラスの abort メソッドを使います。このときイベントは発生しません。
  var coder = new Postal.Coder();
  coder.onload = function() {
    alert('onload イベントが発生しました!');
  };
  coder.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  coder.send('横浜');
  coder.abort();
検索のタイムアウト時間を長くする
検索のタイムアウトを長くするときは Postal.Coder クラスのコンストラクタを使います。タイムアウトの初期値は30秒です。通常は変更せずそのまま使います。
  var coder = new Postal.Coder({timeout: 60});
  coder.onload = function() {
    alert('onload イベントが発生しました!');
  };
  coder.onerror = function() {
    alert('onerror イベントが発生しました!');
  };
  coder.send('横浜');
