• 最新全国省市区县乡镇街道行政区划数据提取(2022年)


    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格式文件生成

    转换好后直接可以下载到json文件:

    json文件数据

    文件内包含了n:城市名、i:城市ID、p:上级ID、y:拼音前缀,都是单个字母做key,目的是减少文件大小,如果想要name、id这样的key,可以点击“在线编辑UserFormat源码”里面默认实现了导出完整的数据格式。

    json文件对于跨平台使用很方便,不单单是网页里面使用,手机app、桌面程序、后端代码内使用均适用。

    最新版多级联动js版数据代码提取

    数据在线预览页面底下,提供了个在线转换工具,打开就是当前库里面整理好的最新版数据(开源库更新维护数据比较及时),能将省市区镇四级数据转成多级联动js,控制选项也丰富,转成两级、三级、四级联动都可以,还能在页面上直接体验到四级联动下拉选择:

    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客户端查看数据:
    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/areacity-jsspider-statsgov/assets/geo-echarts.html

    ECharts Map四级下钻

    【END】

  • 相关阅读:
    《论文写作》感悟
    在线问题反馈模块实战(十五)​:实现在线更新反馈状态功能
    容器云平台监控告警体系(三)—— 使用Prometheus Operator部署并管理Prometheus Server
    算法基础模板
    长话短说:学习网络安全自学好还是报培训班?
    Vue - 判断访问网页客户端设备是手机移动端还是 PC 电脑端(判断设备类型是否是移动端手机)
    基于百度、高德路线规划的出行圈获取
    【区块链 | Solidity】以太坊Solidity如何实现海量空投代币?
    requests
    [附源码]java毕业设计餐厅卫生安全系统
  • 原文地址:https://www.cnblogs.com/xiangyuecn/p/15887009.html