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网页外面疾速实现多级联动,用户抉择后会有事件回调。

最新版数据导入数据库

导入前先下载好:

  1. 【转换工具软件】在数据在线预览页面内,点击转换工具软件链接能够下载到开源库提供的转换工具,应用此工具,能够将省市区镇四级行政区划数据导入到MySQL、SQL Server数据库,或者转换成sql文件(导入到其余兼容数据库);
  2. 【ok_data_level4.csv数据文件】在数据在线预览页面内,点击显示的数据下载链接,下载失去ok_data_level4.csv数据文件。

留神:文件肯定要到开源库内下载,开源库更新保护数据比拟及时,不要到其余的下载平台下载,不然那些上传到下载平台万年不更新的极有可能下载到老版本。

转换工具软件只反对Windows电脑,Mac上能够应用虚拟机来应用软件。

筹备好后,关上转换工具,开始将数据导入数据库(这里导入的MySQL,导入SQL Server一样操作):

  1. 点击工具内的“高级>>”按钮,关上自定义脚本界面;
  2. 在脚本界面点击顶上的抉择文件,抉择下载的ok_data_level4.csv数据文件;
  3. 在内置脚本下拉框中抉择“省市区镇导入数据库”选项,而后点击利用按钮;
  4. 在左侧界面的数据库设置中,抉择类型为MySQL,填写好数据库连贯端口+数据库名+账号密码;
  5. 自定义脚本界面中点击“导入数据库”按钮,期待一会,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】