diff --git a/README.md b/README.md index 3a85f6a..be41314 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ## 数据下载 -当前最新版数据在 **src文件夹** 内,此数据更新于2022-07-04,整合了 `统计局2021-12-30`、`民政部2022-03-21`、`腾讯地图行政区划2022-01-14`、`高德地图行政区划采集当天` 数据。 +当前最新版数据在 **src文件夹** 内,此数据更新于2022-09-07,整合了 `统计局2021-12-30`、`民政部2022-03-21`、`腾讯地图行政区划2022-07-07`、`高德地图行政区划采集当天` 数据。 可在 [GitHub Releases](https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov/releases) 中下载最新发布数据文件,也可直接打开 `src/采集到的数据` 文件夹内的文件来使用。 @@ -85,11 +85,11 @@ git clone --depth 1 https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov.git ## 数据源 -- [国家统计局](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/) :统计用区划和城乡划分代码,此数据比较齐全但是比较杂,并且数据是一年一更可能会存在滞后,需额外移除和处理开发区、经济区、高新区、国家级新区等区域;此数据源为省市区三级数据的主要数据源,镇级辅助数据源。 +- [国家统计局](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/) :统计用区划和城乡划分代码,此数据比较齐全但是比较杂,并且数据是一年一更可能会存在滞后,需额外移除和处理开发区、经济区、高新区、国家级新区等区域;此数据源为省市区三级数据的主要数据源,乡镇级辅助数据源。 - [民政部](http://www.mca.gov.cn/article/sj/xzqh/) :行政区划代码,提供省市区三级数据,一月一更(不过2021半年没有更新);为辅助数据源。 -- [腾讯地图行政区划](https://lbs.qq.com/webservice_v1/guide-region.html):提供省市区镇四级数据,更新比较频繁;为镇级主要数据源,省市区三级辅助数据源。 +- [腾讯地图行政区划](https://lbs.qq.com/webservice_v1/guide-region.html):提供省市区镇四级数据,更新比较频繁;为乡镇级主要数据源,省市区三级辅助数据源。 - [高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district):提供省市区镇数据,实际采用前三级,更新比较频繁但具体时间未知;为辅助数据源。 @@ -103,7 +103,7 @@ git clone --depth 1 https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov.git 字段|类型|描述 :--:|:--:|-- -id|int/long|城市编号,三级用int类型,四级用long类型;省市区三级为统计局的编号经过去除后缀的`0{3,6,8}`得到的短编号,港澳台编号为民政部的编号;如果是添加的数据(国外),此编号为自定义编号;镇级主要为腾讯地图行政区划的编号,大部分和统计局的数据一致,约7.5%(约3000个)的镇级不一致;如果某级缺失(如:省直辖县级市、新增城市),会用上级数据进行补齐,编号为上级结尾添加0{2,3},*注意如果要恢复长编号时(简单的补上00)已有的ID会和添加的ID产生冲突,比如4位恢复到6位将导致部分上下级ID冲突,恢复时这些新加的数据要进行特殊处理*。 +id|int|城市编号;省市区三级为统计局的编号经过去除后缀的`0{3,6,8}`得到的短编号,港澳台编号为民政部的编号;如果是添加的数据(国外),此编号为自定义编号;乡镇级主要为腾讯地图行政区划的编号,大部分和统计局的数据一致,约7.5%(约3000个)的乡镇级不一致;如果某级缺失(如:省直辖县级市、新增城市),会用上级数据进行补齐,编号为上级结尾添加0{2,3},*注意如果要恢复长编号时(简单的补上00)已有的ID会和添加的ID产生冲突,比如4位恢复到6位将导致部分上下级ID冲突,恢复时这些新加的数据要进行特殊处理*。 pid|int|上级ID deep|int|层级深度;0:省,1:市,2:区,3:镇 name|string|`如:武汉`,为数据源原始名称精简过后的短名称,和ext_name字段值的前半部分完全相同,如需完整名称请使用ext_name字段 @@ -137,7 +137,7 @@ polygon|string|行政区域边界,高德地图`GCJ-02`火星坐标系。格式 [​](?) ## 数据有效性和完整性 -本库会尽量和民政部的更新频率保持一致,但由于最为主要的两个数据源`国家统计局`、`腾讯地图行政区划`更新频度并没有民政部高;因此省市区三级准确度和民政部准确度是一量级,并且要更完整些;第四级镇级主要由`腾讯地图行政区划`提供,腾讯数据源并不经常更新,因此会导致小部分新增、调整的城市第四级没有数据(会用上级数据补齐),使用前应该考虑此缺陷。 +本库会尽量和民政部的更新频率保持一致,但由于最为主要的两个数据源`国家统计局`、`腾讯地图行政区划`更新频度并没有民政部高;因此省市区三级准确度和民政部准确度是一量级,并且要更完整些;第四级乡镇级主要由`腾讯地图行政区划`提供,腾讯数据源并不经常更新,因此会导致小部分新增、调整的城市第四级没有数据(会用上级数据补齐),使用前应该考虑此缺陷。 数据通过使用上级数据补齐的形式(具体细节请参考后面的数据规则),使得任何一个数据都能满足省市区镇4级结构,没有孤立的(ID全局唯一),因此不管从哪级进行下级选择,都能进行有效操作。可以通过ID结构来识别这种补齐填充的数据,只要ID为上级的ID+多个0,就代表此数据为补齐填充数据,比如:东莞(4419)-东莞(441900),很容易鉴别出441900为补齐用的填充数据。 @@ -151,10 +151,10 @@ polygon|string|行政区域边界,高德地图`GCJ-02`火星坐标系。格式 ## 数据更新日志 -- 2021.220321.220704版(更新时间: 2022-07-04)采集了4层,省、市、区、镇,来源:[统计局2021版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/index.html);省市区3级合并了[民政部2022-03-21数据](http://www.mca.gov.cn/article/sj/xzqh/1980/202203/20220300040708.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20220114](https://lbs.qq.com/webservice_v1/guide-region.html)数据;镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的镇级。采集高德省市区三级坐标和行政区域边界范围。 -- 2020.210510.1103版(2021)采集了4层,省、市、区、镇,来源:[统计局2020版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/index.html);省市区3级合并了[民政部2021-05-10数据](http://www.mca.gov.cn/article/sj/xzqh/1980/202105/20210500033655.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20211103](https://lbs.qq.com/webservice_v1/guide-region.html)数据;镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的镇级。采集高德省市区三级坐标和行政区域边界范围。 -- 2020.201120.0814版(2020)采集了4层,省、市、区、镇,来源:[统计局2020版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/index.html);省市区3级合并了[民政部2020-11-20数据](http://www.mca.gov.cn/article/sj/xzqh/2020/202011/20201100030582.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20200814](https://lbs.qq.com/webservice_v1/guide-region.html)数据;镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的镇级。采集高德省市区三级坐标和行政区域边界范围。 -- 2019.200925.0814版(2020)采集了4层,省、市、区、镇,来源:[统计局2019版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/index.html);省市区3级合并了[民政部2020-09-25数据](http://www.mca.gov.cn/article/sj/xzqh/2020/2020/2020092500801.html)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20200814](https://lbs.qq.com/webservice_v1/guide-region.html)数据;镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的镇级。采集高德省市区三级坐标和行政区域边界范围。 +- 2021.220707.220907版(更新时间: 2022-09-07)采集了4层,省、市、区、镇,来源:[统计局2021版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/index.html);省市区3级合并了[民政部2022-03-21数据](http://www.mca.gov.cn/article/sj/xzqh/1980/202203/20220300040708.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20220707](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 +- 2020.210510.1103版(2021)采集了4层,省、市、区、镇,来源:[统计局2020版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/index.html);省市区3级合并了[民政部2021-05-10数据](http://www.mca.gov.cn/article/sj/xzqh/1980/202105/20210500033655.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20211103](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 +- 2020.201120.0814版(2020)采集了4层,省、市、区、镇,来源:[统计局2020版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/index.html);省市区3级合并了[民政部2020-11-20数据](http://www.mca.gov.cn/article/sj/xzqh/2020/202011/20201100030582.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20200814](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 +- 2019.200925.0814版(2020)采集了4层,省、市、区、镇,来源:[统计局2019版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/index.html);省市区3级合并了[民政部2020-09-25数据](http://www.mca.gov.cn/article/sj/xzqh/2020/2020/2020092500801.html)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20200814](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 - 2018版(2019)采集了4层,省、市、区、镇,来源:[统计局2018版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2018/index.html);省市区3级额外合并了[民政部2019-08-27数据](http://www.mca.gov.cn/article/sj/xzqh/2019/201908/201908271607.html)。采集高德省市区三级坐标和行政区域边界范围。 - 2017版(2018)采集了3层,省、市、区,来源:[统计局2017版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2017/index.html)。 - 2016版(2017)采集了3层,省、市、区,来源:[统计局2016版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/index.html)。 @@ -313,13 +313,13 @@ ECharts + 高德地图四级下钻: 4. 如果市、区没有下级,自动添加同名的一个城镇作为下级,编号规则和上一条规则相同,以保证数据层次的一致性(任何一个数据都能满足省市区镇4级结构,没有孤立的);比如:`福建-泉州-金门`没有镇,调整后为`福建-泉州-金门-金门`;另外从民政部等数据源中补全的新增城市也会缺失下级,照此规则自动补齐。 -5. 台湾数据只有省市区三级没有镇级,因此镇级通过前面几条规则自动补齐;香港、澳门数据源有两级,当做直筒子市来处理,比如把香港当做东莞,从面积和人口来看还算合理,因此港澳数据中省市区三级是完全相同的,第四级镇级才有城市数据,如:香港-香港-香港-湾仔区。 +5. 台湾数据只有省市区三级没有乡镇级,因此乡镇级通过前面几条规则自动补齐;香港、澳门数据源有两级,当做直筒子市来处理,比如把香港当做东莞,从面积和人口来看还算合理,因此港澳数据中省市区三级是完全相同的,第四级乡镇级才有城市数据,如:香港-香港-香港-湾仔区。 6. 地区名字是直接去掉常见的后缀进行精简的,如直接清除结尾的`市|区|县|街道办事处|XX族自治X`,数量较少并且移除会导致部分名字产生歧义的后缀并未精简。 -7. 省市区前三级数据的合并:统计局采集过来的数据会先和民政部的数据交叉对比后进行合并;由于统计局的数据明显的滞后,民政部内新添加的市、区将不会有镇级(自动补齐同名镇级);如果民政部数据存在明文撤销的市、区,那么合并的时候会删除统计局对应的数据;如果统计局中的数据在民政部数据内不存在,将原样保留。高德地图行政区域会和腾讯地图行政区划数据进行交叉对比,然后择优选取需要的数据。最后(统计局+民政部)和(高德+腾讯的数据)的前三级数据进行交叉融合,得到的【省市区】 ≈ 【统计局的数据】 - 【160来个开发区、经济区、高新区、国家级新区】 - 【撤销城市】 + 【新设城市】 + 【港澳台】。 +7. 省市区前三级数据的合并:统计局采集过来的数据会先和民政部的数据交叉对比后进行合并;由于统计局的数据明显的滞后,民政部内新添加的市、区将不会有乡镇级(自动补齐同名乡镇级);如果民政部数据存在明文撤销的市、区,那么合并的时候会删除统计局对应的数据;如果统计局中的数据在民政部数据内不存在,将原样保留。高德地图行政区域会和腾讯地图行政区划数据进行交叉对比,然后择优选取需要的数据。最后(统计局+民政部)和(高德+腾讯的数据)的前三级数据进行交叉融合,得到的【省市区】 ≈ 【统计局的数据】 - 【160来个开发区、经济区、高新区、国家级新区】 - 【撤销城市】 + 【新设城市】 + 【港澳台】。 -8. 第四级镇级主要采用腾讯地图行政区划数据,综合高德和统计局的数据,和统计局的数据差异在3000个左右,占比7.5%(3000/40000),得到的【镇级】 ≈ 【腾讯地图行政区划数据】。 +8. 第四级乡镇级主要采用腾讯地图行政区划数据,综合高德和统计局的数据,和统计局的数据差异在3000个左右,占比7.5%(3000/40000),得到的【乡镇级】 ≈ 【腾讯地图行政区划数据】。 9. 省市区三级的坐标和行政区域边界范围数据从高德采集,省市区总计3300+条数据,少部分城市未采集到数据(仅台湾的城市、国外)。关于未获取到坐标或边界的城市,本采集方案采取不处理策略,空着就空着,覆盖主要城市和主要人群,未覆盖区域实际使用过程中应该进行降级等处理。比如:尽最大可能的根据用户坐标来确定用户所在城市,因为存在没有边界信息的区域,未匹配到的应使用ip等城市识别方法。得到的【坐标和边界】 = 【高德地图数据】。 @@ -331,7 +331,7 @@ ECharts + 高德地图四级下钻: ## 为什么不直接用统计局的数据 1. 存在滞后,更新没有民政部和其他数据源频繁,新采集却是老数据,并且明知道存在新数据,强迫症又要犯了。 -2. 统计局的数据比较齐全但是比较杂,靠一个人来分开整理几乎不可能;比如:统计局数据包含了160多个经济区、开发区,这种区划应该算专门的区域([行政管理区](https://baike.baidu.com/item/%E8%A1%8C%E6%94%BF%E7%AE%A1%E7%90%86%E5%8C%BA/17184852)),一般由多个城市的区域组成,在区级内算是重复的区域,因此需要剔除,但剔除后这些区域下面的镇级需要划分到实际的归属城市下面,这就很困难了,因为量太大了,一个个去查归属地几乎不可能。 +2. 统计局的数据比较齐全但是比较杂,靠一个人来分开整理几乎不可能;比如:统计局数据包含了160多个经济区、开发区,这种区划应该算专门的区域([行政管理区](https://baike.baidu.com/item/%E8%A1%8C%E6%94%BF%E7%AE%A1%E7%90%86%E5%8C%BA/17184852)),一般由多个城市的区域组成,在区级内算是重复的区域,因此需要剔除,但剔除后这些区域下面的乡镇级需要划分到实际的归属城市下面,这就很困难了,因为量太大了,一个个去查归属地几乎不可能。 3. 统计局的数据也存在缺失数据,如:港澳台、昆玉市、双河市。 4. 其他平台的数据在感官上显得都[不够完美](https://v2ex.com/t/607306),综合一下舒畅多了。 @@ -341,7 +341,7 @@ ECharts + 高德地图四级下钻: ### 拼音源 省市区这三级采用在线拼音工具转换,据说依据《新华字典》、《现代汉语词典》等规范性辞书校对,多音字地名大部分能正确拼音,`重庆:chong qing`,`朝阳:chao yang`,`郫都:pi du`,`闵行:min hang`,`康巴什:kang ba shi`、`六安市:lu an shi`;转换完成后会和腾讯地图行政区划存在的拼音进行对比校正。 -镇级以下地名采用本地拼音库(`assets/pinyin-python-server`)转换,准确度没有省市区的高。 +乡镇级以下地名采用本地拼音库(`assets/pinyin-python-server`)转换,准确度没有省市区的高。 ### 拼音前缀 目前采用的是截取第一个字拼音的首字母,和港澳台、国外特殊指定前缀。 diff --git a/assets/AGT/WebviewSettingsCodes/exec/city_to_db.js b/assets/AGT/WebviewSettingsCodes/exec/city_to_db.js index 0c17502..9bd80bd 100644 --- a/assets/AGT/WebviewSettingsCodes/exec/city_to_db.js +++ b/assets/AGT/WebviewSettingsCodes/exec/city_to_db.js @@ -1,7 +1,7 @@ /****************** 《【导入】 ok_data_level*.csv 省市区镇导入数据库》 作者:高坚果 -时间:2020-05-30 23:39:53 本文件由代码生成器生成,【请勿直接打开文件修改】 +时间:2020-10-06 11:39:53 本文件由代码生成器生成,【请勿直接打开文件修改】 本代码用于将 ok_data_level*.csv 省市区镇3级或4级数据导入到数据库中。 ******************/ @@ -20,7 +20,7 @@ Runtime.translateGeoDisable();//停用坐标转换 //显示控制按钮 Runtime.Ctrls([ {name:"ok_data_level*.csv 省市区镇导入数据库",click:"CityToDBClick"} - ,{html:'免费版、付费版均可导出所有数据;如果你想生成多级联动js或json数据,请使用本库的在线转换工具'} + ,{html:'免费版、付费版均可导出所有数据;如果你想生成多级联动js或json数据,请使用本库的在线转换工具'} ,{html: '
\