ラボ > Javascript関連:ajax、Google関連、Google関連:Google APIs

javascript 郵便番号から住所取得(GooglAPI+ajax())のソース

作成日:2018-03-02, 更新日:2019-01-28

2019-01-28時点

APIのキーが必要。

Google APIsからキーを取得し、設定が必要。

▼有効にするライブラリ
・Google Maps Geocodeing API

サンプル

var zipCode = '000-0000';

$.ajax({
   type : 'get',
   url : 'https://maps.googleapis.com/maps/api/geocode/json',
   crossDomain : true,
   dataType : 'json',
   data : {
      key : '〇〇〇〇〇〇〇〇〇〇〇〇',
      address : zipCode,
      language : 'ja',
      sensor : false
   },
   success : function(resp){
      if(resp.status == "OK"){
         // APIのレスポンスから住所情報を取得
         var obj = resp.results[0].address_components;
         if (obj.length < 5) {
            alert('正しい郵便番号を入力してください');
            return false;
         }
         
         if ( obj.length == 6 ) {
            // obj[5]['long_name']                       // 国
            // obj[4]['long_name']                       // 都道府県
            // obj[3]['long_name']                       // 市区町村
            // obj[2]['long_name'] + obj[1]['long_name'] // 残りの部分
         }
         else if ( obj.length == 5 ) {
            // obj[4]['long_name'] // 国
            // obj[3]['long_name'] // 都道府県
            // obj[2]['long_name'] // 市区町村
            // obj[1]['long_name'] // 残りの部分
         }
         
      }
      else{
         alert('住所情報が取得できませんでした');
         return false;
      }
   }
});

キーが不要だったとき

var zipCode = '000-0000';

$.ajax({
   type : 'get',
   url : 'https://maps.googleapis.com/maps/api/geocode/json',
   crossDomain : true,
   dataType : 'json',
   data : {
      address : zipCode,
      language : 'ja',
      sensor : false
   },
   success : function(resp){
      if(resp.status == "OK"){
         // APIのレスポンスから住所情報を取得
         var obj = resp.results[0].address_components;
         if (obj.length < 5) {
            alert('正しい郵便番号を入力してください');
            return false;
         }
         
         if ( obj.length == 6 ) {
            // obj[5]['long_name']                       // 国
            // obj[4]['long_name']                       // 都道府県
            // obj[3]['long_name']                       // 市区町村
            // obj[2]['long_name'] + obj[1]['long_name'] // 残りの部分
         }
         else if ( obj.length == 5 ) {
            // obj[4]['long_name'] // 国
            // obj[3]['long_name'] // 都道府県
            // obj[2]['long_name'] // 市区町村
            // obj[1]['long_name'] // 残りの部分
         }
         
      }
      else{
         alert('住所情報が取得できませんでした');
         return false;
      }
   }
});