Skip to content

更新 province.json 的操作方法,获取到最新版的省市区数据 #1030

@xiangyuecn

Description

@xiangyuecn

鉴于 assets/province.json 于2017年之后就没有更新,导致选择器的行政区划数据过于滞后,很多新的区县都没有。每年都会有十几到几十个区县撤并,因此行政区划数据应当需要经常更新维护。

可以到我的开源库:https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov 获取到最新的省市区数据,基本上月更,除了省市区乡镇四级区划外,还有坐标边界数据。

转成 province.json ,请用下面方法(使用时,建议开发当天转换得到新文件,这样就能使用到最新版本数据):

  1. 打开在线多级联动生成页面:https://xiangyuecn.gitee.io/areacity-jsspider-statsgov/
  2. 拖动页面到最底下,在“导出为自定义按钮”上方的输入框中填写下面的自定义js代码
  3. 点击“导出为自定义按钮”,就得到了含最新数据的 province.json 文件

注意:生成的文件带了UTF8的BOM头,可以把文件打开后,复制一下文本到新的文件里面,去掉BOM头,免得对json解析产生影响

自定义js代码:

//复制这些代码到 “导出为自定义按钮” 上方的输入框中
function UserFormat(list,mapping){
    var exec=function(level,obj,dist){//写个函数,递归处理数据
        if(!obj.childs.length){
            return;
        };
        for(var i=0;i<obj.childs.length;i++){
            var itm=obj.childs[i];
            var o={ name:itm.ext_name };
            var arr=[];
            if(level==3){
                dist.push(itm.ext_name);
                continue;
            }
            if(level==1)o.city=arr;
            if(level==2)o.area=arr;
            dist.push(o);
            
            exec(level+1, itm, arr);
        };
        return dist;
    };
    var data=exec(1,mapping[0],[]);

    var code=JSON.stringify(data,null,"  ");
    var codeLen=new Blob([code],{"type":"text/plain"}).size+3;

    return Result("",code,"province.json",codeLen+"字节");
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions