根据国家统计局处理四级地址库
项目场景:
提示:参考数据国家统计局,[http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/index.html
](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/index.html)
用户地址和可销售区域以及物流配送都需要有一个统一的标准,但是行政区域有可能会被撤销以及新增,所以要不定时进行数据同步。国家统计局会定时更新数据,我们可以根据需要进行拉取。
数据及介绍
下面提供一套最近我拉取的数据,如果有需要的可以进行下载使用。
csdn下载地址不需要金币
1-3级地址示例
第四级街道示例
按照国家统一编码,北京市编码11,天津编码12以及其他省份或者直辖市都是有固定的编码,全国统计用区划代码(12位)和城乡分类代码(3位),实际分析数据12位过于长保留6位即可。街道则根据第三级区名称定义
数据读取:
提示:如何从list中确定出省市区
代码长度为6位,前两位代表省份,中间两位代表市/区,后面两位代表县。
前两位代表省【110000,120000,130000】其提取方式为【代码%1000】
中间两位代表市【110100,120100,130100】 其提取方式为【代码%100】
剩余则代表区/县
现在我们已经知道字符长度中都是代表什么样的区域,但是如何实现三级联动的效果呢?
方案如下:
1.先取出所有的省/直辖市级获取其编码
2.循环list配置值计算方式为【0<(当前值-省编码)<1000】即为此省下面的市区
3.循环list配置值计算方式为【0<(当前值-市编码)<100】即为此省下面的区县
4.由于第四级是单独的文件则直接根据选定的区编码读取文件即可
获取代码如下:
/// <summary>/// 获取四级地址/// </summary>/// <param name="code">区域编码</param>/// <returns></returns>public static object GetAreaCodeList(int? code){//获取json文件var JsonFile = Common.HtmlGet_Json(Config.openUrl + "Json/Area/list.json");//文件转键值对var ADic = JsonConvert.DeserializeObject<Dictionary<int, string>>(JsonFile);//返回数据List<string> areaList = new List<string> { };//循环数据foreach (var item in ADic){//code为空if (!code.HasValue){//读取所有省if (item.Key % 10000 == 0){areaList.Add(item.Value);}}else{var p = item.Key - code; // lxj, //判断当前code是否为省if (code % 10000 == 0){//则取出市if (p > 0 && p < 10000){areaList.Add(item.Value);}}else if (code % 100 == 0){//则取出区/县if (p > 0 && p < 100){areaList.Add(item.Value);}}else{//第四级根据code读取文件名}}}return areaList;}
如果是过滤直辖市的是市辖区适当改变下代码即可如下:
/// <summary>/// 获取四级地址/// </summary>/// <param name="code">区域编码</param>/// <returns></returns>public static object GetAreaCodeList(int? code){//获取json文件var JsonFile = Common.HtmlGet_Json(Config.openUrl + "Json/Area/list.json");//文件转键值对var ADic = JsonConvert.DeserializeObject<Dictionary<int, string>>(JsonFile);//返回数据List<string> areaList = new List<string> { };//直辖市int[] sxq = new int[] { 110000, 120000, 310000, 500000 };//循环数据foreach (var item in ADic){//code为空if (!code.HasValue){//读取所有省if (item.Key % 10000 == 0){areaList.Add(item.Value);}}else{var p = item.Key - code; //过滤直辖市的市辖区if (sxq.Contains(code.Value)){// 不同直辖市的区县if (p > 100 && p < 100){areaList.Add(item.Value);}}else{//判断当前code是否为省if (code % 10000 == 0){//则取出市if (p > 0 && p < 10000){areaList.Add(item.Value);}}else if (code % 100 == 0){//则取出区/县if (p > 0 && p < 100){areaList.Add(item.Value);}}else{//第四级根据code读取文件名}}}}return areaList;}
后面我会介绍如何从国家统计局拉取数据!
根据国家统计局处理四级地址库相关推荐
- 四级地址库 国家标准的行政区划代码 省市区街道
当输入收货地址等时,需要四级地址库,例如淘宝维护收货地址: 本文章提供四级地址库下载,包括一级省.二级市.三级区.四级街道四个层级,于2020年12月更新. 一级省,共31条记录.二级市,共371条记 ...
- 2020年最新中国行政地区三级、四级、五级地址库(包含京东)
2020年最新中国行政地区地址库 三级地址库下载地址:https://download.csdn.net/download/weixin_46484774/12581441 四级地址库下载地址:htt ...
- 全国省市县四级坐标地址库
全国省市县四级坐标地址库 下载并导入数据库文件 使用 下载并导入数据库文件 数据库文件链接: https://download.csdn.net/download/daizimo/10954204 使 ...
- MMDB ip地址库操作
MMDB ip地址库操作 @(JAVA)[java] MMDB即Maxmind DB,是一个设计用于存储IPv4和IPv6的数据信息的数据库,mmdb文件是一个二进制格式的文件,它使用一个二分查找树加 ...
- 计算机网络四级题库word,计算机四级考试题库2016
计算机四级考试题库2016 47.计算机网络的目标是实现____. A.数据处理 B.文献检索 C.资源共享和信息传输 D.信息传输 48.当个人计算机以拨号方式接入1nternet网时,必须使用的设 ...
- 【客户下单】基于CRM完全匹配地址库实现自动分单
[客户下单]基于CRM完全匹配地址库实现自动分单 将寄件人的下单地址,以webservice的方式,发送给CRM地址库,获取到对应的客户关联的定区,匹配与定区关联的快递员,实现自动分单. 在crm_m ...
- 读取速度贼快的省市区地址库
AddressData 读取速度贼快的地址库,包含省市区及身份证号前缀 地址库大小 54.14746KB 读取耗时 14~25ms (MacBook Pro LQ2 i7-4770HQ) {北京市={ ...
- 站长工具--IP地址库
中国最全的IP地址库 转载于:https://www.cnblogs.com/weloveshare/p/5783438.html
- 计算机四级软件工程知识点,计算机四级考试题库及搜题软件,送一份备考指南给大家!...
原标题:计算机四级考试题库及搜题软件,送一份备考指南给大家! 大家都知道,英语与计算机考试都是我们读书生涯中很常见的考试.其计算机四级考试就是全国计算机等级水平考试中的一中. 计算机四级是针对计算机的 ...
- spring boot 整合 ip2region(ip地址库)
Ip2region是什么? ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nod ...
最新文章
- [IoC容器Unity]第一回:Unity预览
- 分布式系统保障—混沌工程—初识
- 大型网站技术架构02 网站的高性能架构、网站的可用性架构
- LeetCode 2089. 找出数组排序后的目标下标
- 机器学习任务的一般步骤
- 【讨论】不得不重视的问题:信息太多!信息太杂!
- 【前端 · 面试 】HTTP 总结(七)—— HTTP 缓存概述
- 逆向路由器固件之敏感信息泄露 Part2
- 优雅的实现Activiti动态调整流程(自由跳转、前进、后退、分裂、前加签、后加签等),含范例代码!...
- 【优化算法】世界杯优化算法(WCOA)【含Matlab源码 1427期】
- 【故障分析】基于matlab轴承故障仿真信号时域波形图+幅度谱图【含Matlab源码 123期】
- Linux当前目录下所有jpg文件,解决Linux平台下无法打开jpg文件(提示: “Not a JPEG file: starts with 0x89 0x50”)的方法...
- 微软hci推荐服务器,Azure Stack HCI 的系统需求
- 最新Via轻插件下载
- 关于window简体中文环境文件路径包含7种横杠的问题,及结论推广
- android ue设计原则,ued设计原则
- 在嘲笑与冷眼下成长,并不断在泥潭中站起
- android表格布局bottom,Android基础_2 Activity线性布局和表格布局
- Leetcode575(力扣575):分糖果
- python输入身份证号得到出生日期_初学django1:django模型中自定义方法从身份证号码中获取出生日期...