“天地图”作为我国区域内数据资源最全面、现势性最好的地理信息网站,旨在向公众提供权威、全面、统一的地理信息服务,如今已成为电子政务的重要组成部分。本文以全国范围的公共版1:100万比例尺DLG数据(2015版)为基础,以SuperMap iDesktop为工具,详细介绍天地图1-10级数据处理方法、制图流程和制图精编注意事项。
注:(1)有关天地图的制作规范,例如数据分级标准、要素分级原则、注记分级显示原则等等,可自行在网络上搜索,这里不做赘述。
(2)下文中涉及到的诸如行政区地名编码、比例尺等级等,都参考的是国家相关标准。
(3)本文中所使用的全国范围公共版1:100万比例尺DLG数据(2015)版为通过合法渠道获取到的数据。
天地图1-10级所涉及到的点数据主要为各级行政区地名,包括:首都、省会、直辖市、特别行政区、地级行政区、县级行政区以及乡镇,各级行政地名点存储在同一个数据集AGNP中,以识别码CLASS进行区分,同时以GNID作为地名编码。为了制图方便,需要把不同级别的行政地名点提取出来区分表示,可以通过属性表中的“筛选”功能提取不同识别码对应级别的地名点,同一识别码下不同级别的行政地名点需要根据地名编码GNID进行区分。
各级行政区地名与其对应的CLASS识别码如表一。
表一 各级行政区地名与对应标识码
行政区地名 |
识别码 |
省行政地名(直辖市、自治区、特别行政区) |
AB |
自治州、盟、地区行政地名 |
AC |
地级市行政地名 |
AD |
县级市行政地名 |
AE |
县级行政地名(自治县、旗、自治旗、地级市市辖区) |
AF |
县辖区及县级行政区域的派出机构地名 |
AG |
街道办事处地名 |
AH |
镇行政地名 |
AI |
乡行政地名 |
AJ |
各级行政地名点在《天地图电子地图符号与注记说明》中要求的显示层级为:中国首都;省会、直辖市、特别行政区;地级市;县级市;乡镇。
① 首都
首都北京在地图上需要区分显示,而在数据识别码上与其它省级行政地名不做区分,因此需要使用SQL查询的功能将北京的地名点单独提取为一个数据集。
② 省会、直辖市、特别行政区由表一可知,直辖市与特别行政区的识别码均为AB,可以使用属性表中的“筛选”功能来提取,具体操作为:打开数据集AGNP的属性表,选中CLASS属性列右击,点击“筛选”,然后在可筛选项下勾选AB,单击“确定”后,即选出所有识别码为AB的数据项,这时,需要手动选择两个特别行政区与除北京外的三个直辖市,选中后右键另存为新的数据集。
省会与其它地级市的识别码均为AD,提取时,首先筛选出识别码为AD的数据项,然后对地名编码GNID进行升序排列(无地名编码的数据项为国外部分,不做处理),此时发现,省会的地名编码后四位为0100,即省会排列在同一省内市级行政单位的第一个,例如,石家庄市的地名编码为130100,太原市的地名编码为140100,可以使用Like函数对GNID后四位为0100的数据项进行提取另存。
根据《天地图电子地图符号与注记说明》,省会、直辖市与特别行政区在地图上的表示不做区分,因此,可以将这两个数据集合并存储,SuperMap支持右键拖拽合并数据集,这里将新数据集命名为“省会”。
③ 地级市
地级市是AGNP数据集中识别码AD下存在GNID编码的数据项中排除省会的数据项,保存为“地级市”。
④ 自治州、盟、地区
在地图表达上,自治州、盟和地区是与地级市同一级别表达要素,但特殊的是,这些要素不需要表达点位,只需要标出地名,因此单独提取保存。自治州、地区与盟对应的识别码为AC,因此只需要筛选出AGNP数据集中ClASS编码为AC的数据项,将有GNID编码的数据项选中另存为“自治州盟地区”。
⑤ 县级市
县级行政区地名点包括县级市与其它县级行政地名(自治县、旗、自治旗、地级市市辖区),识别码分别为AE与AF,提取县级行政地名点时,筛选出数据集AGNP中CLASS编码为AE与AF的数据项,保存有GNID编码的数据项为“县级行政区”。
⑥ 乡镇
乡镇级别行政地名包含镇行政地名与乡行政地名,识别码分别为AI与AJ,提取方法与县级市类似,不再赘述。
在原始数据中,岛屿点数据存储在数据集AANP中,以CLASS作为识别码来区分不同类型的岛屿。制图表达时,只需要考虑一些比较重要的岛屿,包括钓鱼岛、赤尾屿、南海诸岛以及其它补充岛屿。主要岛屿与其它补充岛屿标签的表达方式不同,需要分开为不同的数据集存储,此处由于未找到补充岛屿具体含义的相关资料,只讨论主要岛屿(具体包括:钓鱼岛、赤尾屿、东沙群岛、西沙群岛、中沙群岛、南沙群岛、黄岩岛、曾母暗沙、南安礁与万安滩)的表达。在提取这些岛屿时,通过简单的识别码筛选并不能识别出这些岛屿,此时需要使用SQL查询来提取。
* 查询完整的SQL语句为:AANP.NAME = "钓鱼岛" OR AANP.NAME ="赤尾屿" OR AANP.NAME = "东沙群岛" OR AANP.NAME = "西沙群岛" ORAANP.NAME = "中沙群岛" OR AANP.NAME = "南沙群岛" OR AANP.NAME = "黄岩岛" ORAANP.NAME = "万安滩" OR AANP.NAME ="南安礁" OR AANP.NAME = "曾母暗沙"
线数据主要分为各级行政区界线、路网与水系,均以GB码作为识别码,各类要素与其对应的GB码如表二。
表二 线数据中各要素类型与对应标识码
要素类别 |
线状要素 |
识别码 |
国界线 |
已定国界 |
620201 |
未定国界 |
620202 |
|
省界 |
630200 |
|
特别行政区界 |
630400 |
|
公路 |
建成国道 |
420101 |
建成省道 |
420201 |
|
建成县道 |
420301 |
|
乡道 |
420400 |
|
城市快速路 |
430200 |
|
普通铁路 |
单线标准轨 |
410101 |
复线标准轨 |
410102 |
|
水系 |
地面河流 |
210101 |
* 公路只表示数据中已建成的公路,铁路即普通铁路,只表示标准轨铁路,不包括窄轨铁路。
各级境界线存储在数据集BOUL中,以国标码GB作为识别码,制图时需要将国界、省界与特别行政区界单独提取赋予不同的风格来显示。
① 国界
国界线包含已定界与未定界,对应的GB码分别为620201与620202,需要使用属性表中的“筛选”功能,筛选出BOUL数据集中GB码为620201与620202的线对象。
② 省界省界中已定界对应的GB码为630201,未定界对应的GB码为630202,此处没有区分已定界与未定界,统一使用630200的GB码,使用筛选工具来提取,方法与提取国界一致。
③ 特别行政区界
特别行政区界对应的GB码为630400,使用筛选工具来提取,方法与提取国界一致。
公路数据在数据集LRDL中,以国标码GB进行区分,同时以RTEG来标识道路的技术等级,制作地图时,不同等级的公路需要选用不同的符号来进行表达,因此首先对公路数据进行分级。此外,考虑到后续制作标签专题图时道路分段过多会导致重复标记,所以需要对各级别公路进行融合处理。
① 高速公路
高速公路包括国家高速公路和省级高速公路,需要分别提取再融合。国家高速公路即GB码为420101的道路中RTEG编码为“高”的数据项,而省级高速公路为GB码为420201的道路中RTEG编码为“高”的数据项,使用筛选的功能可以将这些道路筛选出来,合并存储为“高速公路”。对提取出来的高速公路使用“数据”选项卡中的“数据处理”分组下的“融合”功能以名称字段NAME为融合字段进行融合,而有些高速公路NAME字段为空,但道路编号RN字段相同,也是同一条路,因此使用NAME字段融合完毕后最好再使用RN字段融合一次。
② 国道此处需要提取的国道为排除了国家高速公路的普通国道,只需筛选出GB码为420101同时RTEG编码不为“高”的数据项,提取完毕后,先后以NAME字段和道路编号RN为融合字段进行融合。
③ 省道
此处的省道为排除了省级高速公路的普通省道,与国道类似,需筛选出GB码为420201且RTEG编码不为“高”的数据项,然后进行融合处理。
④ 县道
提取县道时候,使用筛选功能筛选出GB码为420301的数据项,然后进行融合处理。
⑤ 乡道
乡道对应的GB码为420400,提取方法与县道类似。
⑥ 城市快速路
城市快速路对应的GB码为430200,提取方法与县道类似。
铁路数据存储在数据集LRRL中,单线标准轨和复线标准轨的GB码分别为410101与410102,使用 “筛选”功能将数据集LRRL中GB码为410101、410102的数据项筛选出来,另存为“铁路”数据集。提取完毕后,先后以NAME字段和铁路编号RN为融合字段进行融合处理,具体操作方法不予赘述。
《天地图电子地图符号与注记说明》中要求1-10级显示比例尺下水系需要分级为全球一级、二级、三级水系来分别表示,但由于国家测绘局公共版1:100万数据中并没有相关的字段信息,这里我们只表示中国的两条主要河流(长江与黄河),并没有按照标准来,读者若有标准的数据,需要以显示标准中要求的分类来处理。长江与黄河的线数据提取需要使用SQL查询来提取,这里需要注意的是,提取长江和黄河时包含其上游河段,具体包括:通天河、通天河(治曲)、金沙江、黄河(玛曲)。提取完毕后需要以NAME字段为融合字段进行融合处理,保存为“主要河流线”。
* 所有线数据集中超出国界线的部分,无法通过识别码来识别出来,如制图不需要可手动删除。
面数据主要包括行政面和水系提取与处理,水系以GB码为识别码,与GB码对应关系如表三。
表三 面数据中水系与对应标识码
要素类别 |
线状要素 |
识别码 |
水系 |
地面河流 |
210101 |
湖泊 |
230101 |
|
水库 |
240101 |
行政区划面在数据集BOUA中,以分幅的方式来进行存储。制图时,只需要中国的整个面域部分,而不用区分各省与市的面,因此只需要将中国的面域融合为一个面,然后去除国外部分即可。
① 去除国外部分
打开BOUA数据集的属性表,对PAC码按照升序排列,然后删除六位PAC编码以外的数据项,即删除中国以外的区域。
② 面融合
由于分幅之后,相同PAC码的对象被分幅线切开了,需要合并到一起。使用“数据”选项卡中“数据处理”分组下的“融合”工具,以PAC编码为融合字段对中国区域的面进行融合,以消除分幅的影响。
图1 中国行政区划面融合前后对比
③ 删除海域
制图时对中国海域部分不做特殊标记,所以需要删除海域部分的面,并将所有剩余面合并为一个整体的面数据。
图2 提取中国行政区划面结果
水系面数据存储在数据集HYDA中,需要提取的数据包括主要河流、湖泊与水库,同样地,由于公共版数据的限制这里的水系数据并没有按照显示标准来处理。提取主要河流时,使用SQL语句来查找,查找完毕后以NAME字段为融合字段进行融合。湖泊与水库对应的GB码分别为230101和240101,使用属性表中的筛选功能来提取数据集HYDA中对应GB码下的数据项,提取完毕后以NAME字段为融合字段进行融合处理。
4.辅助数据制作
国家名称和省名可以通过制作文本数据集或CAD数据集来制作,一般采用文本数据集即可。
新建地图窗口,添加数据集。打开“地图属性”面板,勾选“范围”分组下的“固定比例尺”,点击“设置比例尺…”按钮,弹出“设置固定比例尺”面板,然后可以在此面板中设置地图的比例尺层级,1:100万比例尺数据适合制作1-10级比例尺地图,1-10级对应的比例尺如表四。
表四 天地图1-10级显示比例尺
比例尺等级 |
比例尺 |
L1 |
1:295,829,355.45 |
L2 |
1:147,914,677.73 |
L3 |
1:73,957,338.86 |
L4 |
1:36,978,669.43 |
L5 |
1:18,489,334.72 |
L6 |
1:9,224,667.36 |
L7 |
1:4,622,333.68 |
L8 |
1:2,311,166.84 |
L9 |
1:1,155,583.42 |
L10 |
1:577,791.71 |
为了清晰方便的管理地图,可以将每一级比例尺下需要显示的要素设置放入一个根组下管理,并为每个根组设置对应的显示比例尺。
图3 图层管理器根组示意
将每一级比例尺下需要显示的要素以拖拽的形式加入对应的分组下,并为每一类要素在设置符号库中对应的符号。每一级比例尺下需要表达的要素与标签(包含标签专题图与文本数据集)如表五。
表五1-10每级比例尺下显示要素与标签
比例尺等级 |
类型 |
显示要素 |
显示标签 |
L1 |
线 |
国界、主要河流线 |
—— |
面 |
中国、主要河流面 |
—— |
|
L2 |
线 |
国界、主要河流线 |
—— |
面 |
中国、主要河流面 |
—— |
|
L3 |
线 |
国界、主要河流线 |
—— |
面 |
中国、主要河流面 |
中国名称 |
|
L4 |
点 |
首都 |
首都标签 |
线 |
国界、主要河流线、省界、特别行政区界、港澳指引线 |
省名 |
|
面 |
中国、主要河流面 |
中国名称 |
|
L5 |
点 |
首都、省会 |
首都标签、省会标签、岛屿标签 |
线 |
国界、主要河流线、省界、特别行政区界、港澳指引线、国道、高速公路 |
省名 |
|
面 |
中国、主要河流面、湖泊 |
中国名称 |
|
L6 |
点 |
首都、省会、地级市 |
首都标签、省会标签、岛屿标签、地级市标签、自治州盟地区标签 |
线 |
国界、主要河流线、省界、特别行政区界、港澳指引线、国道、高速公路 |
省名 |
|
面 |
中国、主要河流面、湖泊 |
中国名称、主要河流标签 |
|
L7 |
点 |
首都、省会、地级市 |
首都标签、省会标签、岛屿标签、地级市标签、自治州盟地区标签 |
线 |
国界、主要河流线、省界、特别行政区界、港澳指引线、国道、高速公路 |
省名、高速公路编号、国道编号 |
|
面 |
中国、主要河流面、湖泊 |
中国名称、主要河流标签 |
|
L8 |
点 |
首都、省会、地级市、县级市 |
首都标签、省会标签、岛屿标签、地级市标签、自治州盟地区标签、县级市标签 |
线 |
国界、主要河流线、省界、特别行政区界、国道、高速公路、城市快速路、省道 |
高速公路编号、国道编号 |
|
面 |
中国、主要河流面、湖泊 |
主要河流标签 |
|
L9 |
点 |
首都、省会、地级市、县级市 |
首都标签、省会标签、岛屿标签、地级市标签、自治州盟地区标签、县级市标签 |
线 |
国界、主要河流线、省界、特别行政区界、国道、高速公路、城市快速路、省道、县道 |
高速公路编号、国道编号、省道编号 |
|
面 |
中国、主要河流面、湖泊 |
主要河流标签 |
|
L10 |
点 |
首都、省会、地级市、县级市、乡镇 |
首都标签、省会标签、岛屿标签、地级市标签、自治州盟地区标签、县级市标签、乡镇标签 |
线 |
国界、主要河流线、省界、特别行政区界、国道、高速公路、城市快速路、省道、县道、乡道 |
高速公路编号、高速公路名称注记、国道编号、省道编号 |
|
面 |
中国、主要河流面、湖泊 |
主要河流标签 |
* 除水系外全部参考自《天地图电子地图符号与注记说明》,红色字体为当前比例尺下与上一级更小的比例尺相比新增的图层要素;
这里需要注意的是,每个比例尺层级下的要素一般是按照标签、点、线、面的方式排列,点、线和面的排列原则是重要的位于上层,例如省会级别地名点位于县级市地名点的上层,这样点位产生压盖的情况下会优先显示而在标签进行排列时候,由于地图图层的绘制顺序是由下往上绘制的,位于下层的标签先绘制的话会将上层标签避让掉,所以标签的排列原则是重要的位于下层,例如省会标签需要放在县级市标签的下层。
在“地图”选项卡中的“基本”分组下,提供了“线型反走样”与“文本反走样”的选项。
图4 线型反走样与文本反走样前后对比
在标签专题图的“专题图属性”选项卡中“高级”分组下,可以设置标签的超长处理方式为“换行显示”,设置合适的单行文本字数,使得标签超过设定的长度时换行显示。如果需要标签按照语意关系来换行,还可以使用“指定换行字符”的功能,例如:大通回族土族自治县,想要在“回族”与“土族”之间换行,就可以在两者之间加“/”,即“大通回族/土族自治县”,指定换行符为“/”,就可以实现在“回族”与“土族”之间换行。
3.标签与点位位置调整
使用“修改专题图”面板下“属性”分组中的“标签偏移量”功能调整标签与点位之间的距离。
图5 调整标签偏移量前后效果对比
专题图的模板可以右键输出保存到指定目录下,再次使用同样的风格时,直接加载进来即可,不需要再重复设置一次参数。
(1) SuperMap iDesktop资源库中提供了天地图风格的符号,如各级道路等,可以直接拿来使用。
(2) 更多细节优化的需求请参考《SuperMapiDesktop联机帮助》或《SuperMap制图实用指南》。
(3) 天地图查看可点击网址http://zhfw.tianditu.com/。
(4) 制作好的天地图效果图如下。
图6 天地图第五级效果图
图7 天地图第六级效果图