利用高德API獲取最新的省市區數據


直接上代碼,只是保存數據,所以實現功能即可,代碼有點亂

 1 $key = 'xxxxx';//自己去高德申請即可  2 $url = 'https://restapi.amap.com/v3/config/district?subdistrict=3&key='.$key;  3 $res = file_get_contents($url);  4 
 5 $res = json_decode($res,true);//轉換數組
 6 
 7 $str = 'insert into fa_area values';//插入數據庫  8 // $data = [];
 9 foreach ($res['districts'] as $v) { 10     //循環一次
11     $str .= "(null,".$v['adcode'].",'".$v['name']."',0,0), "; 12     foreach ($v['districts'] as $vv) { 13         //循環34次
14         $str .= "(null,".$vv['adcode'].",'".$vv['name']."',1,".$v['adcode']."), "; 15         foreach ($vv['districts'] as $vvv) { 16 
17             $str .= "(null,".$vvv['adcode'].",'".$vvv['name']."',2,".$vv['adcode']."), "; 18             //循環市 19 // $temp_3[$vvv['adcode']] = []; 20 // $temp_4 = [];
21             foreach ($vvv['districts'] as $kkkk=>$vvvv) { 22                 //循環區縣 23 // $temp_4[$vvvv['adcode']] = $vvvv['name'];
24                 $code = $vvvv['adcode']; 25                 $str .= "(null,$code,'".$vvvv['name']."',3,".$vvv['adcode']."), "; 26  } 27 // ksort($temp_4); 28 // $temp_3[$vvv['adcode']][] = $temp_4;
29  } 30 // ksort($temp_3); 31 // $data[] = $temp_3;
32  } 33 } 34 $str = rtrim($str, ', ');//刪除最后一個空格 35 // echo $str;
36 Db::name('area')->query($str); 37 die; 38 // file_put_contents('area.txt',json_encode($data));//寫入文件

這是fa_area表結構

1 CREATE TABLE `fa_area` ( 2   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
3   `code` int(10) NOT NULL,
4   `name` varchar(50) NOT NULL,
5   `level` tinyint(1) unsigned NOT NULL COMMENT '層級0-3',
6   `pid` int(10) unsigned DEFAULT NULL COMMENT '上級code',
7   PRIMARY KEY (`id`) 8 ) ENGINE=InnoDB AUTO_INCREMENT=3725 DEFAULT CHARSET=utf8mb4 COMMENT='省市區';

這里需要注意的地方,就是有些市下面直接就是鄉鎮了,比如河南省濟源市,所以需要注意這種數據的處理,切勿直接將adcode當做id,否則會重復


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM