共计 2562 个字符,预计需要花费 7 分钟才能阅读完成。
AreaCity 开源库整顿了省、市、区县、乡镇街道四级行政区划数据,配套了在线工具转换成三级、四级联动 JavaScript 代码,应用自带的转换工具软件能够导入数据库;数据源自:统计局、民政部、腾讯地图行政区划、高德地图行政区划,从这四大平台整合。
数据在线预览:https://xiangyuecn.gitee.io/areacity-jsspider-statsgov/
GitHub 地址:https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov
截止发文(2022-02-12),开源库内于 2022 年 02 月 06 日公布了新整顿的最新版数据;行政区划数据更新频繁,仅区县每年都有好多个变更,统计局、民政部每年都会公布新数据,不过须要自行处理;所以省市区数据须要常常去同步保护,好在这个开源库有在继续的长期保护,新数据公布后更新绝对容易很多。
因为开源库更新保护数据比拟及时,所以只有开源库没有被敞开,本文介绍的提取办法就始终实用,不仅仅是实用于往年; 比那些上传到下载平台就万年不更新的数据优良很多。
除了四级行政区划数据外,开源库内还能够在线预览和下载到省市区三级坐标矢量边界,和乡镇街道天文围栏数据,并且提供了转换工具软件能够不便的导入数据库、转换成 shp、geojson、sql 格局、转换坐标系;坐标边界我前面再发应用教程,本文只介绍四级行政区划数据的提取应用。
最新版通用 json 格式文件提取
在数据在线预览页面底下,提供了个在线转换工具,关上就是以后库外面整顿好的最新版数据(开源库更新保护数据比拟及时),能将省市区镇四级数据转成 json 格式文件,管制选项也丰盛,想要导出一级、两级、三级、四级数据都能够:
转换好后间接能够下载到 json 文件:
文件内蕴含了 n: 城市名、i: 城市 ID、p: 下级 ID、y: 拼音前缀,都是单个字母做 key,目标是缩小文件大小,如果想要 name、id 这样的 key,能够点击“在线编辑 UserFormat 源码”外面默认实现了导出残缺的数据格式。
json 文件对于跨平台应用很不便,不单单是网页外面应用,手机 app、桌面程序、后端代码内应用均实用。
最新版多级联动 js 版数据代码提取
在数据在线预览页面底下,提供了个在线转换工具,关上就是以后库外面整顿好的最新版数据(开源库更新保护数据比拟及时),能将省市区镇四级数据转成多级联动 js,管制选项也丰盛,转成两级、三级、四级联动都能够,还能在页面上间接体验到四级联动下拉抉择:
转换好后间接能够下载到 js 文件:
其实 js 代码内曾经内嵌了 json 格局的数据,并且封装好了多级联动 js 代码,咱们只须要按代码内的阐明,调用办法即可在 html 网页外面疾速实现多级联动,用户抉择后会有事件回调。
最新版数据导入数据库
导入前先下载好:
- 【转换工具软件】在数据在线预览页面内,点击转换工具软件链接能够下载到开源库提供的转换工具,应用此工具,能够将省市区镇四级行政区划数据导入到 MySQL、SQL Server 数据库,或者转换成 sql 文件(导入到其余兼容数据库);
- 【ok_data_level4.csv 数据文件】在数据在线预览页面内,点击显示的数据下载链接,下载失去
ok_data_level4.csv
数据文件。
留神:文件肯定要到开源库内下载,开源库更新保护数据比拟及时,不要到其余的下载平台下载,不然那些上传到下载平台万年不更新的极有可能下载到老版本。
转换工具软件只反对 Windows 电脑,Mac 上能够应用虚拟机来应用软件。
筹备好后,关上转换工具,开始将数据导入数据库(这里导入的 MySQL,导入 SQL Server 一样操作):
- 点击工具内的“高级 >>”按钮,关上自定义脚本界面;
- 在脚本界面点击顶上的抉择文件,抉择下载的
ok_data_level4.csv
数据文件; - 在内置脚本下拉框中抉择“省市区镇导入数据库”选项,而后点击利用按钮;
- 在左侧界面的数据库设置中,抉择类型为 MySQL,填写好数据库连贯端口 + 数据库名 + 账号密码;
- 自定义脚本界面中点击“导入数据库”按钮,期待一会,4 万多条数据 3 分钟不到就就导入数据库了。
导入胜利,4 万多条数据耗时 2 分 22 秒:
MySQL 客户端查看数据:
以上操作同样实用于 SQL Server,一样的步骤,另外内置脚本中还反对“省市区镇转 SQL”性能,能够间接导出 SQL 文件,能够导入到其余兼容的数据库。
数据的一些要留神的中央
开源库会尽量和民政部的更新频率保持一致,但因为最为次要的两个数据源 国家统计局
、 腾讯地图行政区划
更新频度并没有民政部高;因而省市区三级准确度和民政部准确度是一量级,并且要更残缺些;第四级镇级次要由 腾讯地图行政区划
提供,腾讯数据源并不常常更新,因而会导致小局部新增、调整的城市第四级没有数据(会用下级数据补齐),应用前应该思考此缺点。
数据通过应用下级数据补齐的模式(具体细节请参考库文档前面的数据规定),使得任何一个数据都能满足省市区镇 4 级构造,没有孤立的(ID 全局惟一),因而不论从哪级进行上级抉择,都能进行无效操作。能够通过 ID 构造来辨认这种补齐填充的数据,只有 ID 为下级的 ID+ 多个 0,就代表此数据为补齐填充数据,比方:东莞(4419)- 东莞(441900),很容易甄别出 441900 为补齐用的填充数据。
会产生补齐行为的数据很少,约 50 来个,次要为:直筒子市(东莞、儋州等)、省直辖县级市(济源、潜江等),他们的下一级仅有补齐的这条数据。另外直辖市(北京、天津等)上级也仅有一条数据,ID 结尾为 01(不包含重庆,重庆上级分成了市、县两个)。
直筒子等这种为什么不间接把上级往上提一级来做区级,采纳补齐填充的形式来对齐数据的起因,请参考 issue#9。
数据中不蕴含大部分行政管理区,比方:雄安新区、天府新区、苏州工业园区等。
省市区县乡镇坐标、矢量边界数据
在数据在线预览页面中同样能够下载到省市区三级坐标边界数据,和乡镇级的坐标边界数据,通过转换工具软件能够不便的导入数据库、转换成 shp、geojson、sql 格局、转换坐标系。
坐标边界的应用我前面再发教程,敬请关注~
ECharts Map 四级下钻在线测试和预览 + 代码生成:https://xiangyuecn.gitee.io/a…
【END】