TP6一键创建更新省/市/区县/街道、乡镇数据

首先推荐一个开源项目:点此查看

优点:开箱即用
缺点:没法及时更新,例如:地名更改无法及时更新

想要及时更新,可以基于高德地图的行政区域查询来做一个:

public function init(){
	$url = 'http://restapi.amap.com/v3/config/district?key=您的key&keywords=中国&subdistrict=3&extensions=base';
	$stream_opts = [
	    "ssl" => [
	        "verify_peer"=>false,
	        "verify_peer_name"=>false,
	    ]
	];
	$res = file_get_contents($url, false, stream_context_create($stream_opts));
	$resArr = json_decode($res, true);
	$data = $resArr['districts'][0]['districts'];
	$this->createDistrict($data, 0);
}

private function createDistrict($arr=[],$parentid=0{
	//按区域编码排序
	$key = array_column($arr, 'adcode');
    array_multisort($key, SORT_ASC, $arr);
    foreach ($arr as $k => $v) {
        $pid = Db::name('district')->insertGetId([
            'name' => $v['name'],
            'center' => $v['center'],
            'citycode' => $v['citycode'],
            'adcode' => $v['adcode'],
            'pid' => $parentid,
        ]);
        if (array_key_exists('districts', $v) && !empty($v['districts'])) {
            $this->createDistrict($v['districts'], $pid);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值