市町村コードの対応データをjsonで書きだしてみる

住所から市町村コードを取得したいと思っていろいろ試行錯誤中。

そのあたりのライブラリがありそうだと思うのですが見つけられませんでした。

とりあえずまずは全国地方公共団体コードの対応データが必要かなと思って探してみたら
【JSON】都道府県市区郡一覧作ってみた - Qiita
も見つけたのですが、欲しかったのが郡でなく町村だったので探索続行。

しばらく探してみると
都道府県内市区町村一覧取得API | 国土交通省 土地総合情報システム
を見つけたので、このAPIから市町村コードの対応データをjsonで書きだすPHPを書いてみました。

citycode.php
<?php
$pref_ids= array(
  "01" => "北海道",
  "02" => "青森県",
  "03" => "岩手県",
  "04" => "宮城県",
  "05" => "秋田県",
  "06" => "山形県",
  "07" => "福島県",
  "08" => "茨城県",
  "09" => "栃木県",
  "10" => "群馬県",
  "11" => "埼玉県",
  "12" => "千葉県",
  "13" => "東京都",
  "14" => "神奈川県",
  "15" => "新潟県",
  "16" => "富山県",
  "17" => "石川県",
  "18" => "福井県",
  "19" => "山梨県",
  "20" => "長野県",
  "21" => "岐阜県",
  "22" => "静岡県",
  "23" => "愛知県",
  "24" => "三重県",
  "25" => "滋賀県",
  "26" => "京都府",
  "27" => "大阪府",
  "28" => "兵庫県",
  "29" => "奈良県",
  "30" => "和歌山県",
  "31" => "鳥取県",
  "32" => "島根県",
  "33" => "岡山県",
  "34" => "広島県",
  "35" => "山口県",
  "36" => "徳島県",
  "37" => "香川県",
  "38" => "愛媛県",
  "39" => "高知県",
  "40" => "福岡県",
  "41" => "佐賀県",
  "42" => "長崎県",
  "43" => "熊本県",
  "44" => "大分県",
  "45" => "宮崎県",
  "46" => "鹿児島県",
  "47" => "沖縄県"
);  

$city_code = [];
foreach ($pref_ids as $key => $value) {
  $req =  'http://www.land.mlit.go.jp/webland/api/CitySearch?area='.$key;
  $json = file_get_contents($req);
  $json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
  $addcode = json_decode($json, true);
  $city_code += array($key =>array("pref-code" => $key , "pref-name" => $value ,'data' => $addcode['data']));
}

$arr = json_encode($city_code,  JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
file_put_contents("citycode.json" , $arr);

これでとりあえずは全国地方公共団体コードjsonができたので、これを使って住所から市町村コードを取得できないか考えてみます。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.