雷秋良 朱阿兴 武淑霞 张认连 徐爱国 张维理† 孙福军
(3 中国科学院地理科学与资源研究所资源与环境信息系统国家重点实验室,北京 100101)
(4 Department of Geography, University of Wisconsin-Madison, Madison, WI 53706, USA)(5 沈阳农业大学土地与环境学院,沈阳 110161)
为了提高地图或其他专业图件的可读性,在制图过程中通常使用注记。注记是在地图上表达地理要素的名称,是地图重要的组成部分。注记的实现是计算机地图制图和地理信息系统不可缺少的关键环节[1-3]。为实现注记在地图的优化表达与自动化,众多学者在注记的自动配置、压盖、冲突、最佳的注记位置以及在不同的专题图适用性与应用等方面开展了相关研究[4-9],但在土壤图注记方面的研究较少。
作为重要的专题图之一,土壤类型图是反映特定区域的土壤类型、土壤属性及其地理分布规律的图件[10],这些图件以地图方式直观地表达和显示土壤类型、质地、酸碱度、养分及肥力状况等土壤理化性状的空间分布,是土壤调查成果的集中体现,不仅可为国家及省级进行农业资源开发、区划和土壤改良利用提供科学依据,而且对开展土壤分类和土壤制图的研究也具有重要意义。为了增强土壤图的可读性、可翻译性,通常在土壤制图过程中使用土壤类型名称、地理辅助要素名称(如居民地名称、水系名称、高程值)等信息生成注记,以增强土壤图的可读性。目前已有的传统土壤图,仍然是全国第二次土壤普查时形成的土壤图。由于当时计算机技术的限制以及从事制图人员的制图水平参差不齐,从手绘的蓝图到相对规范的印刷图件,导致目前保存的土壤图制图质量差别也很大,尤其是图件的注记表达效果差别很大。因此,很有必要开展传统土壤图的再制图以及注记自动化制图研究。
目前已有的商业G I S软件,如A r c G I S、MapInfo、GeoMedia、MapGIS、SuperMap等GIS软件,均提供了相应的注记生成功能的扩展模块或扩展工具,例如ArcGIS软件中包含了PLTS(Production Line Tool Set)模块,提供了数据生产管理和地图生产的解决方案,但由于坐标系、字库兼容性问题以及不同专题图有不同的特殊需求,导致其在我国专题图制图应用中仍存在很大的局限性。大多GIS软件在注记制图方面主要针对单幅图注记的实现,缺少对大批量、具有不同特征的专题图进行注记的自动化生成,在自动化、灵活性方面仍有欠缺。此外,目前的GIS软件通常针对图层或分级属性进行注记的设置,缺少针对特定要素的注记设置。传统土壤图制图注记主要是通过人工制图实现的,在小比例尺制图或小区域制图,通常通过人工完成制图。在进行覆盖全国的土壤图制图过程中,尤其是1∶5万大比例尺土壤图制图,若按照地形图1∶5万标准分幅进行分幅制图,有2万余个标准分幅,需要对数据量高达几十GB的海量空间要素对象进行调用、分析和注记编辑等,其工作量大、效率低,因此,全国1∶5万标准分幅土壤图注记的制图要求实现批量自动化,进而减少工作量,提高制图效率。
从以上研究来看,在土壤制图领域缺少注记自动化制图的研究,目前已有的GIS专业软件对于海量空间数据的自动化制图仍有很大的局限性,海量空间数据的自动化制图的核心之一是基于数据库驱动技术的应用;此外,目前的GIS软件针对图层和属性分级码设置,缺少针对要素级别的注记设置的考虑。
基于以上问题,本研究的目的是基于数据库驱动技术,采用图层-属性分级码-要素三级的注记设置,实现批量分幅土壤图注记自动化配置,为土壤图和土壤养分图制图中的注记表达提供一种人机交互式的批量自动化工具,在大区域、多图幅、多要素的大比例尺制图中实现注记的自动生成,并通过注记字符颜色、字体、字号的差异化表达,实现表达主题突出、层次感清晰的土壤图注记,从而有利于正确和全面表达二次土壤普查成果的土壤信息,提高土壤制图成果的质量,也为今后不同比例尺土壤图制图实现注记的自动化配置提供参考。
土壤图的注记自动配置流程见图1,详细设计思路如下:
(1)准备土壤和基础地理空间数据,采用统一的File GDB(File Geodatabase)数据库格式,保证数据格式的一致性。土壤和基础地理空间数据分三级目录存储,三级目录的存储与国家基础地理信息1∶5万地形图分幅目录存储一致,主要方便数据的调用。
(2)自动提取上一步格式转换后的File GDB空间数据库中各表的字段结构、分级码和存储路径,分别生成相应的结构表(A_Fra)、分级码表(A_Gr)、存储路径表(A_Dir)。结构表用于保存不同图层数据的结构,便于用户选择注记字段;分级码表用于保存不同图层中分级码的值,便于用户选择需要生成注记的分级码;存储路径表用于保存存储路径,便于调用数据。
(3)建立分级码与字体对应关系表(V_GrTx)。用于生成注记时,通过关联字段读取不同分级码的字体,同时,也方便进行字库的统一修改。此外,还需要设置字体编码规则表、土壤代码表与土壤类型颜色分级表。
(4)在步骤(2)结构表的基础上,增加GrSta字段(用于标识进行统计的字段),根据设定的统计字段,对不同图幅的不同分级码要素的数量、长度、面积以及比例等相关特征进行统计,并生成统计表(S1_Stale),统计结果用于步骤(6),根据统计结果设定注记上图的判别阈值,进行分级码的筛选。
(5)图层的注记优先级设置与图廓边界缓冲设置。根据步骤(2)中的结构表,生成注记图层表(Vlay)。图层的注记优先级设置主要用于生成注记时根据该图层的优先级顺序进行避让,低优先级别的图层注记避让高优先级别的图层。图廓边界缓冲设置主要采用图廓边界注记压盖检测技术,生成图廓边界缓冲区,进行判别注记是否超出缓冲区边界。对于超出边界的注记,重新选取位置生成注记。
(6)将步骤(5)Vlay表和步骤(3)中的V_GrTxt表进行合并,再与步骤(2)中的A_Gr表合并,生成新的分级码表( V2_Gr),V2_Gr表中增加注记分级码设置(GrOff)、注记排列方式设置(Curve)、注记阈值判别(Pa_VGrOff)等字段。用户可以依据自己的专业知识,在字段GrOff中对分级码进行人工设定是否生成注记。Curve字段主要用于注记生成时排列方向的设置。
(7)在合并步骤(6)的基础上,生成每个图幅的注记规则表(V4_Leg),以数据库的方式存储各种注记规则,该表中包含图层整层注记设置、分级码注记设置、注记层优先级设置、图廓边界缓冲设置、注记摆放位置、注记字体设置等信息。
(8)从步骤(7)中的V4_Leg表,通过数据库驱动方式,读取对应图幅注记的属性值、注记生成顺序和避让规则、注记摆放位置以及注记字体样式,按照上述字段规则确定注记的避让,并生成新的注记层。
图1 土壤图注记自动配置流程图Fig. 1 Flowchart of the soil map annotation auto-configuration system
系统中采用了基于数据库驱动技术、注记分级控制、图廓边界注记压盖处理、注记的阈值设定与抽稀处理等相关技术,详细如下:
(1)基于数据库驱动技术的注记制图。数据库驱动的制图技术是指基于地理基础数据,利用一体化模型进行制图数据的存储模型扩展,结合制图专用图例符号库、字库、图廓整饰库等基础素材库以及规则库实现制图信息的自动配置和地图生成,从而实现地理基础数据与制图数据的一体化存储和管理。由于数据库驱动制图技术能使数据和地图保持现势性与一致性,易于维护和扩展等优点,该技术在地形图、地质图、海图、交通图等制图中得到广泛的应用[11-15]。本系统采用数据库驱动制图技术,数据及注记规则均保存在GeoDatabase数据库中,如图层整层注记设置、分级码注记设置、注记层优先级设置、图廓边界缓冲设置、注记摆放位置、注记字体设置等注记规则,以数据驱动方式调用注记规则进行注记制图。通过数据库驱动技术进行注记制图,能使数据生产流程化,有效地提高数据生产效率,大大提高数据生成的质量。
(2)采用图层、属性分级码、要素三级结构,实现不同级别的注记控制。注记在图层级别上可以进行整个图层以及背景层注记的设置;在分级码级别上结合统计结果,进行注记的条件判别与阈值过滤;在要素级别上实现特殊要素注记的生成,如土壤图图层,根据统计结果,设置每一种最大面积的土壤类型的代码必须上注记。
(3)图廓边界注记压盖检测与处理技术。目前的GIS软件在生成注记层时,经常出现注记压盖图廓边界现象,需要在后期进行手动调整。针对这种问题,采用生成临时的图廓边界缓冲区,读取注记坐标,检测注记是否落在图廓边界缓冲区,对于超出图廓边界的注记自动移动到图廓内,这样,减少了后期注记处理的工作。
(4)注记要素的阈值设定与抽稀处理。由于我国的区域特征差异大,地理要素与土壤空间要素的稀疏程度在空间分布上很不均匀。在土壤图注记表达中,居民点名称用于了解土壤类型所在位置。在东部地区,由于居民点过密,注记全部上图则影响土壤图的视觉效果和土壤类型注记显示效果,因此需要进行一定的取舍;在西部地区,表征土壤类型位置信息的居民点较少,其居民点则应该全部上注记。针对不同图幅要素分布不平衡问题,则基于不同图幅居民点注记数量统计结果,设定阈值,判定行政村或自然村分级码是否上注记。经过阈值处理后,仍无法满足要求的,则根据总量及比例进行抽稀算法处理。该阈值设定以及抽稀处理也可以用于其他图层,如水系图层。
根据数据分析流程和注记表达人机交互的关键步骤,土壤图注记自动配置系统由数据输入输出控制模块、注记参数设置模块、分级码筛选模块、统计分析模块、避让分析模块、注记渲染与预览模块等6个核心模块构成。数据输入输出控制模块主要描述输入输出数据、中间结果数据及空间数据的数据结构、存储路径以及在不同流程中数据表的调用机制;注记参数设置模块进行注记字体、冲突检测设置;统计分析模块对全局分级码和分幅分级码进行统计,便于设置分级码筛选条件;分级码筛选模块主要通过条件判别解决注记的分区问题;避让分析模块基于已设置的条件进行注记的避让分析;注记渲染与预览模块为生成注记层时进行图层渲染、注记效果预览。土壤图注记自动配置系统的流程及相互机制见图1。
2.1.1数据输入输出控制模块 数据输入输出控制模块主要是确定不同流程中输入数据、输出数据、中间结果表、空间数据的存储、调用,描述不同流程间的相互关系与表之间的相互调用机制。
土壤图注记自动配置系统输入的数据包括空间数据和属性数据。空间数据包括分幅基础地理信息要素、土壤等空间数据,空间数据格式要求为ArcGIS的Personal Geodatabase或File Geodatabase数据格式,其他格式可以通过系统中的批处理转换工具进行转换。属性数据主要为Microsoft Access格式的数据库及数据表,需要预置的属性表包括VGr_Rule、Txt_Rule、Txt、V_GrTxt、QH2_Leg等表。
土壤图注记自动配置系统输出的数据包含空间数据和属性数据,同时,为了便于检查结果的正确性和进行过程回溯,也包含了大量的中间结果表。输出的空间数据主要为不同阶段挂接属性表后或筛选后的空间数据、注记数据层,输出的属性数据主要包括注记字体、注记规则设置表、空间数据结构设置表、分级码统计表、图例表、分级码设置表、注记唯一ID表等数据表。
表1 系统参数、数据输入输出表Table 1 Parameters, input and output of the soil map annotation auto-configuration system
2.1.2注记参数设置模块 由于土壤图作为专业图件,制图过程中使用的注记图层数量不多,因而注记设置规则也相对较少。注记设置模块主要包括注记字体设置和注记冲突检测设置。注记字体设置包括注记字体、字号、字色、注记放置位置的设置,图层分级码与注记字体的关联设定;注记冲突检测设置包括生成注记的图层权重设定,背景注记的设定、注记字体缓冲、图层全局设定、边界缓冲设定等内容。注记字体涉及的表包括Txt和V_GrTxt,注记参数设置涉及的表包括Vlay和Pa_VGrOff表(见表1)。
注记设置模块中的字体定义在字体TXT表中进行设置,根据制图要求或输出地图比例尺大小设定字体名称、字号大小、字体颜色、字体样式、字体唯一代码,字体表可以在前端、后台进行调用、浏览和修改。在V_GrTxt表中,进行图层分级码与注记字体的关联设定,注记上图时,通过字体唯一代码进行调用。
图层注记冲突检测主要解决注记压盖、位置优先级、背景注记等问题,可以在Vlay图层优先表中进行设置。为了保证重要的图层注记不被其他图层的注记压盖,可以设置不同图层的优先级顺序,即图层的权重大小,优先级顺序从1至100之间设置,1为最高优先级,100最低,值越大,优先级越低。注记字体缓冲主要是对注记字体设定缓冲区,防止其他图层相邻的注记与本层注记间的距离太近而影响视觉效果。背景注记主要是解决某些注记可以被其他图层注记遮盖而作为背景显示,如大的地名、山脉、河流,背景注记优先生成。图层全局设定是指整个图层不单独对其分级码设计,所有的分级码设置规则相同,如土壤图层、剖面点层要求其注记按照整层统一注记样式生成,不需要再按照分级码进行分级设定。边界缓冲目的是为了防止注记超出图层边界,通过设置边缘缓冲图层实现。注记放置位置(河流方向、等高线方向、沿线水平放置;面内弯曲放置、面内水平放置;系统选择最佳位置)。
在注记字体和注记冲突检测设置完成后,各自保存为独立的数据表,通过数据库驱动方式调用相关规则,应用自定义字体注记,并进行注记冲突检测后,生成注记层。
2.1.3统计分析模块 统计分析模块主要是为分级码筛选提供条件设定依据。统计范围包括对全局分级码的统计和分幅分级码的统计,统计空间对象包括点、线、面三种类型要素,点要素统计内容包括图层内点数量总计、不同分级码点数量总计及占图层点数量比例;线要素统计内容包括图层线段总长度、不同分级码线段总长度及所占比例、不同分级码最长线段长度、最短线段长度,图层线段个数总计、分级码线段个数总计及所占比例;面要素统计内容包括图层多边形总面积、不同分级码多边形总面积及所占比例、不同分级码多边形最大面积、最小面积,图层多边形个数总计、分级码多边形个数总计及所占比例。此外,统计包含的图幅数或目录数以及某个分级码出现的图幅数或目录数。统计分析输出结果主要保存在S1_StaGr、V1_StaLe两个表中(详见表1)。
2.1.4分级码筛选模块 分级码筛选模块主要过滤上图注记的分级码,并通过条件判别解决注记的分区问题。分级码筛选实现的流程主要是基于需要生成注记的空间基础数据,提取每个图层的数据字段结构,首先对不需要上注记的分级码进行全局的开关设定,其次对有区域差异的分级码根据统计结果人为设定条件进行判别,确定不同区域的注记上图条件,根据统计结果,基于一定的原则对分级码设定过滤条件,再次将前两步的判定条件进行合并,确定每个分幅的各个分级码的注记是否上图,最终去除不需要上图的注记或者比较稠密的注记。该模块主要涉及的数据表包括V2_Gr、Pa_VGrOff表(详见表1)。
2.1.5避让分析模块 避让分析模块基于注记设置模块设置的规则,解决注记冲突、注记压盖、注记超出边界、图面倾斜等问题。避让分析模块中,要求在输出的空间数据结构中选择需要设置注记名称的字段,设置输出比例尺,加载并链接每个图幅的避让规则,生成注记上图规则属性表,根据注记上图规则属性表中的注记字段名称及避让规则,生成注记层 ,并输出注记层属性表。该模块运行时,还要求与分级码挂接、进行土壤码的挂接,并生成新的空间数据库。输出空间数据库和数据表分别为V5库和V5_ID表(详见表1)。
2.1.6注记渲染与预览模块 注记渲染与预览模块为了在生成注记层时进行图层渲染和注记效果预览,主要包含生成注记字段的设定、比例尺设定、标注配图、图层渲染、注记生成与预览等过程。在完成注记字段的设定后,可浏览每个图幅下的每个要素挂接的注记生成条件、注记字体等。比例尺默认为1∶5万,可根据制图要求设定不同的比例尺。在进行地图标注时,进行图层的符号化和颜色的渲染,标注完成后,保存为工程文件,最后将标注转换为注记,并可以进行预览。
土壤图注记自动配置系统的实现采用主流GIS开发平台ESRI公司的ArcEngine 10.1进行二次开发,应用Geodatabase作为空间数据库进行空间数据的存储和操作,应用Access关系型数据库对关系表、属性表进行存储,实现各种空间数据以及属性数据的存储与管理。系统的界面设计和功能应用C#编程语言进行开发实现。土壤图注记自动配置系统功能的实现集成在数字土壤制图软件中的V菜单下,系统界面如下:
图2 土壤图注记自动配置系统的界面Fig. 2 Interface of the soil map annotation auto-configuration system
本文以国家1∶5万基础地理信息数据和1∶5万土壤空间数据和属性数据作为输入数据,仅选择广东省信宜市F49E010012图幅为例进行注记自动化配置的应用。需要上注记的基础地理信息要素包括居民点、线状水系、面状水系、面状境界等图层,土壤空间数据主要包括土壤类型和土壤剖面点图层。F49E010012图幅原始数据为coverage数据,转换为Personal GeoDatabase数据。转换完数据后进行数据结构的提取。
从注记输出数量来看,共计2 618个要素,有注记名称的要素2 067个,实际生成注记615个(表2)。注记名称较少的水系、剖面点在注记生成过程中全部保留,土壤图层中的土壤代码作为注记也大部分保留。居民点图层的名称由于过密而去除的较多,仅仅保留了乡镇级别及其以上的居民点名称。基于分级码筛选模块和避让分析模块的条件,大大减少了上图注记的数量,尤其减少了居民点的数量,避免了居民点注记在图面中过于拥挤。
表2 输入地理要素与输出注记要素数量对比表Table 2 Input geographic information and output of feature for annotation
从图面注记输出效果对比来看(图3、图4),未经过土壤图注记自动配置系统处理生成的注记层,出现注记压盖图幅边界等问题,而经过土壤图注记自动配置系统生成的注记层,避免注记出现压盖边界的现象。从数量上看,经过土壤图注记自动配置系统处理后注记的数量也大大减少,图面注记负荷量也大大降低,相对较为平衡。
图3 未使用系统生成的注记层(部分区域)Fig. 3 Annotation layer before using the system
图4 应用系统后生成的注记层(部分区域)Fig. 4 Annotation layer after using the system
本文通过对注记生成流程的剖析,对其关键环节进行分析,基于数据库驱动技术开发了土壤图制图注记自动化配置系统,并进行了系统的应用。主要结论如下:(1)以人机交互的方式以及图层、分级码、要素对象的三层控制的方式进行土壤图注记的自动化配置,实现了批量分幅注记的快速生成。构建的土壤图注记自动配置系统,实现 了图层、分级码、要素对象的三层控制,可用于多图层、多图幅、自动化的土壤图制图的注记表达,能够根据不同类型地图表达的要求,通过在人机交互界面设置要素筛选条件,对图面地理要素和空间对象的空间分布特征进行统计分析,通过对整个空间集的图层、分级码和空间对象三个等级类型信息的序列式分析和逐级判断,完成背景层与主题层多层次的注记表达与避让分析,并自动生成点状、线状、面状要素各自的注记层。(2)土壤图注记自动配置系统采用数据库驱动技术制图,不仅具有较强的灵活性,可适用于不同比例尺土壤图及其他类型地图的注记表达,而且大大提高了数据生产的效率和自动化处理程度。通过解析注记表达的工作流程,界定整个工作流程中各分段流程,完成各分段流程嵌套机制与接口函数设计,开发了包含6个核心模块的土壤图注记自动配置系统。由于采用了数据库驱动技术,数据调用关系、注记设置、避让分析条件表达式以及字库等均保存在数据库不同的数据表,可以实现批量化的注记自动制图,作为土壤图自动化制图的重要组成部分,有效地提高了数据生产效率,使数据生产流程化,大大提高数据生成的质量。此外,还可以通过自定义设置,可以适用于不同比例尺土壤图件或其他类型图件注记的生成。
[ 1 ] 祝国瑞,郭礼珍,尹贡白,等. 地图设计与编绘.武汉:武汉大学出版社,2001 Zhu G R,Guo L Z,Yin G B,et al. Map compilation and design(In Chinese). Wuhan:Wuhan University Press,2001
[ 2 ] 王光霞,游雄,於建峰,等. 地图设计与编绘. 北京:测绘出版社,2011 Wang G X,You X,Yu J F,et al. Map design and compilation(In Chinese). Beijing:Surveying &Mapping Press,2011
[ 3 ] 康建荣,李新,刘翘楚. 多边形区域信息最佳注记位置分析. 测绘通报,2014(6):34—38 Kang J R, Li X, Liu Q C. The analysis of best annotation position in polygon area(In Chinese).Bulletin of Surveying and Mapping,2014(6):34—38
[ 4 ] 樊红,张祖勋,杜道生. 地图线状要素自动注记的算法设计与实现. 测绘学报,1999,28(1):86—89 Fan H,Zhang Z X,Du D S. The algorithm design and implementation of adding annotation to map for linear feature automatically(In Chinese). Acta Geodaetica et Cartographica Sinica,1999,28(1):86—89
[ 5 ] 杜瑞颖,刘镜年. 面状地物名称注记的自动配置研究.测绘学报,1999,28(4):365—368 Du R Y,Liu J N. A research on automatic placement of geo—name in area feature(In Chinese). Acta Geodaetica et Cartographica Sinica,1999,28(4):365—368
[ 6 ] 王诤,李霖,朱海红. 小比例尺地图面状水系名称注记自动配置研究. 武汉大学学报(信息科学版),2007,32(6):543—547 Wang C,Li L,Zhu H H. Automatic name placement for area water features on small scale maps(In Chinese). Geomatics and Information Science of Wuhan University,2007,32(6):543—547
[ 7 ] 钱金凯,宋阳,程维明. 中国 1∶100 万数字地貌图符号与注记系统库的设计和应用. 地球信息科学学报,2012,11(6):778—785 Qian J K,Song Y,Cheng W M. Design and establishment of symbol and annotation system database for 1∶1 000 000 digital geomorphologic map of China(In Chinese). Journal of Geo—information Science,2012,11(6):778—785
[ 8 ] 杜世宏,王桥,杜道生,等. 地名注记自动配置的关键技术研究. 地理与地理信息科学,2003,19(1):20—24 Du S H,Wang Q,Du D S,et al. The key technology study of name automated placement(In Chinese).Geography and Geo—information Science,2003,19(1):20—24
[ 9 ] 张志军,李霖,于忠海,等. 散列式面状注记自动配置技术研究. 武汉大学学报(信息科学版),2011,36(6):739—742 Zhang Z J,Li L,Yu Z H,et al. Auto—labeling of hash anea features(In Chinese). Geomatics and Information Science of Wuhan University,2011,36(6):739—742
[10] Legros J P. Mapping of the soil. Enfield,NH,USA:Science Publishers,2006
[11] 王东华. 地理数据库驱动的地形图制图表达技术研究及集成应用. 武汉:武汉大学,2014 Wang D H. Technology research and integrated application of topographic mapping representation based on geographical database driven(In Chinese).Wuhan:Wuhan University,2014
[12] 袁森林,张瑞. 数据库驱动的地形图快速制图技术探究. 现代测绘,2016,39(6):51—53 Yuan S L,Zhang R. Study on fast graphics of topographic map by database—driven(In Chinese).Modern Surveying and Mapping,2016,39(6):51—53
[13] 王杨刚. 基于数据驱动的基础地质图件更新关键技术研究. 北京:中国地质大学,2016 Wang Y G. Research on general geological map updating technologies based on data driven(In Chinese). Beijing:China University of Geosciences,2016
[14] 梁晓燕,宁方辉,黄忠刚. 数据库驱动的专题海图快速制图研究. 海洋测绘,2013,33(3):63—65 Liang X Y,Ning F H,Huang Z G. Study on the rapid cartography of thematic chart driven by database(In Chinese). Hydrographic Surveying and Charting,2013,33(3):63—65
[15] 汪敏,余晨曦.ArcGIS 地理数据库驱动的快速出图技术研究.测绘通报,2017(5):129—131 Wang M,Yu C X. Research of rapid cartographical technology based on geodatabase in ArcGIS(In Chinese). Bulletin of Surveying and Mapping,2017(5):129—131