行政区划数据是重要的基础地理信息数据,但目前市面上能使用的行政区域数据问题颇多。我这里列出几种大家常用的行政区划数据供大家参考:
(1)尽可能少地改动矢量数据;
(2)国界、南海诸岛的矢量绝不修改,一律以国家基础地理信息2022年发布的数据为准;
(3)各地属性、统辖信息一律以民政部2019年的数据为准;
我之前写过一篇博客用来处理该数据库,具体参考:1:100w基础地理信息数据的镶嵌(zhuanlan.zhihu.com/p/458211981)
上述步骤处理完之后,数据是分块的。
进行县名称的数据融合,以消除下面的方块状组合,再最后选择中国区域,获得的行政区划数据如下所示。
写到这里,首先感谢公众号数读城事继续几年的区划数据更新,这套数据的属性信息是最全的,而且是和民政部代码相契合的。这里我直接使用了这套数据进行了基于县名称的空间连接。由此我们的区划数据初步具有了各县的属性信息。
由于这套数据存在多处数据的矢量拓扑错误,我们首先使用arcgis自带的修复几何功能进行修复。然后不能修复的位置,我们进行空间定位,通过编辑矢量功能进行修复。
在制作过程中,也遇到了民政部有行政代码,国家基础地理信息数据无矢量的情况,比如深圳的坪山区。如果遇到这样的问题,我会首先参考天地图行政区划、民政部的矢量区划,如果没有则参考高德地图的适量区划。比如深圳的坪山区并无矢量:
另外,也遇到了民政部无代码,但有矢量的情况,比如说甘肃太子山天然林有区划矢量,但行政级别上又属于几地管辖:
又如莲花山风景保护区无行政区划代码,参考高德地图区划数据,并入康乐县:
另外比较特殊的地区是台湾省,有县级矢量,但在民政部的行政区划中只有省级代码。为保证本数据的所有属性数据以民政部为准,这里对台湾省的所有县级数据进行了合并,只保存省级矢量。
这部分也是耗时最长的步骤,即使在大部分数据有属性数据的情况下,依然问题较多。
另外就是我国还有一些特殊的行政单位,比如省直辖市、省直辖县行政级别上属于县级单位,但又无地级单位。
比如湖北省的潜江市、天门市、仙桃市,河南的济源市,海南的临高县、东方市等,具体分布图如下所示,这部分区域统一将地级属性命名为空
还有一些比较特殊的地区,是地级市,但截止2019年末,该地区又无县级行政单位,比如海南儋州市、广东东莞市等。这部分区域统一将县级属性命名为空。
在进行检查前,首先普及一下我国大体的行政区划级别。
林区,是中国行政区划之一,行政地位与市辖区、县级市、县、自治县、旗、自治旗、特区相同,属县级行政区,现仅有一个,为湖北省直辖的神农架林区
特区,这里指六枝特区属六盘水市辖区域,位于贵州省西部,现仅有一个。
因此:
省级行政单位有:省、直辖市、自治区、特区
市级行政单位有:地级市、自治州、地区、盟
县级行政单位有:区、县级市、县、自治县、旗、自治旗、直辖县、省直辖市、林区、特区。
此外,还有省直辖县、省直辖市。在民政部的行政区划等级中不属于任何地级行政区划代管。属于县级行政区,不经地级行政区代管或管辖,由省级行政区直接管辖,独立于地级行政区之外单独建制,由所在的省或自治区直接领导和管理。因此省直辖县、省直辖市无地级行政区,也属于县级行政区。
逐个省份进行县级数量检查,检查表格如下:
在检查过程中,将错误的县级类型属性改为正确的,最后我国县级类型分布图如下所示:
这一步是在数据合并完成后进行的,是对逐个省份进行市级类型检查,主要注意几个无县级行政区的地级市,以及直辖市无地级行政单位。最后我国市级类型分布图如下所示:
在检查完矢量与属性信息之后,使用数据融合工具进行地级和省级的数据合并。
我国的市级数据如图所示:
我国的省级数据如图所示:
参考GADM属性信息,给矢量数据添加数据的英文属性,各个属性名称对应的名称如下:
省市县的类型英文名对应为:
另外,考虑到汉语拼音是表述普通话语音的拼音系统,后被用作对外宣传的拼写法则,这也就是我们看到大部分省市英文为拼音的原因。也有部分地区是非拼音,使用的是邮政式拼音。例如广东、广西、福建有一部分地区的地名已经有了拉丁字母的习惯拼法,例如Amoy(厦门)、Canton(广州)、Foochow(福州)等。
但考虑到我国一直使用的拼音代表地名,联合国也于1977年起正式改用汉语拼音拼写中国大陆地名,因此本数据全部采用拼音系统代表地名。但单个字的地区,比如广西横县、山西临县等,保留县名称,再命名。带民族的,保留民族的英文名字。
自此,我们获得了完整的具有英文属性的省市县行政区划矢量数据。
(2)或者读者也可以直接公众号回复锐多宝矢量获取。
我为什么会选做这样的事?是因为我在搭建自己的网站(landcover100.com)中,经常遇到行政区划数据的问题。到底该用哪一套行政区划数据深深困扰着我。天地图数据?不完整。中科资环数据?太旧。高德地图数据?属性不够。
5,0.885,0.32,1.1)0s;transform:scale(0);transform-origin:80%0px;">