-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Open
Description
鉴于 assets/province.json 于2017年之后就没有更新,导致选择器的行政区划数据过于滞后,很多新的区县都没有。每年都会有十几到几十个区县撤并,因此行政区划数据应当需要经常更新维护。
可以到我的开源库:https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov 获取到最新的省市区数据,基本上月更,除了省市区乡镇四级区划外,还有坐标边界数据。
转成 province.json ,请用下面方法(使用时,建议开发当天转换得到新文件,这样就能使用到最新版本数据):
- 打开在线多级联动生成页面:https://xiangyuecn.gitee.io/areacity-jsspider-statsgov/
- 拖动页面到最底下,在“导出为自定义按钮”上方的输入框中填写下面的
自定义js代码
- 点击“导出为自定义按钮”,就得到了含最新数据的 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+"字节");
}
JohnWayneHong
Metadata
Metadata
Assignees
Labels
No labels