专利名称:一种批量符号化的快速成图方法
技术领域:
本发明属于基础测绘领域,涉及地理信息成图技术,为一种地图符号化方法,具体 为一种批量符号化的快速成图方法。
背景技术:
传统的内业成图处理需要专业测绘人员利用数字化成图内业编辑处理软件,并依 赖外业绘制的关系草图,花费大量时间核对数据后,通过人工添加每个地形地物要素的符 号,费时费力,影响工作效率与成图质量。另外作为村镇建设和土地管理等基层部门,由于 受自身没有经济实力和技术条件的限制,难以开展地形图的测绘工作,导致无法满足我国 新农村建设规划用图的急需。随着计算机地图制图和地图数据库技术的发展,快速成图与 制图已进入数字制图和动态制图的阶段,并成为地理信息系统的支撑技术。地图符号作为 地图的语言,通过其性质特征、表象特征(颜色)、浓淡层次特征的组合,对其指代的空间事 物进行表达,以实现其传输地理信息的功能。为了使地图符号的这些基本特征适应数字化 制图环境,研究并实现其数字表达,实现快速成图是有益且必要的。国内最具代表性的南方CASS测绘软件较好地解决了地图符号化的问题。它主要 采用定点选符号的方式将地物附上相应的符号。如果某种地类要素较多,则直接利用“加入 实体编码”选择某种地物,点击准备符号化的点或地物,被点击的地物自动被赋予了与选中 的地物同样的符号。此法虽然简单有效,但并没有彻底克服“手工”操作,即用户手动将地 图符号化,其他的成图软件如清华山维、超图(SuperMap)等,无论存在多少图层和地物,也 都没有实现自动将地图符号化的功能,也就是批量符号化功能。因此,在数据量比较大的情 况下,人工操作的工作量还是相当大的。符号化的速度决定了成图的速度,现有成图软件在 这方面还不能满足使用需求。
发明内容
本发明要解决的技术问题是现有地图符号化的技术方案中存在很多人工操作环 节,影响工作效率与成图质量,需要一种彻底去除地物符号化的手工逐一操作,仅需依据外 业记录的地物属性就能够准确、批量的进行符号化绘制的方法,迅速提高成图的速度。本发明的技术方案为一种批量符号化的快速成图方法,其特征是基于超图符号 库,进行以下步骤1)、导入外业测量中GPS/PDA数字化采集得到的地形图SHP数据,并将数据添加到 地图;2)、以超图符号库的数据为基础,配置符号库,设置编辑符号及其符号属性;3)、设置XML配置文件,记录“地物一符号”配置关系;4)、将XML配置文件中的“地物一符号”的配置关系存储到到哈希列表中;5)、获取地图的数据图层,根据其中表示地物的地类属性的属性值,查找并调出哈 希列表中的“地物_符号”配置关系,从符号库中调用符号,进行符号化;
6)、检查数据图层中是否有未赋上符号的地物,有则重新配置符号库,设置该地物 的符号,然后添加入符号库,并相应重新设置XML配置文件,再进行步骤4)、5)符号化;数据 图层中无未赋上符号的地物,符号化成图完成。通过符号编辑器配置符号库,符号库包括点符号、线符号和面符号,均由编码、名 称、单位和相应的符号属性组成,其中点符号属性包含点的尺寸和颜色;线符号属性包含线 的宽度和颜色;当面符号存在边界部分时,面符号属性包括边界线宽,边界线颜色以及填充 物颜色,当不存在边界部分时,它只包括填充物的颜色;通过点符号编辑器、线符号编辑器 和面符号编辑器修改或添加新符号,完成符号库的配置;将符号库中的各类符号及其属性 以“编码”、“地物名称”、“符号名称”、“符号图层”的顺序编写到XML配置文件中,得到“地 物一符号”配置关系。本发明用哈希列表作为数据存储结构,将XML配置文件中的所有“地物一符号”配 置关系存入哈希列表,具体为建立一个地物与符号配置关系的记录元素,初始时,记录元素指向XML配置文件 中的首节点“styleConf”,记录元素记录每条“地物-符号”配置关系以及符号的相关配置, 包括地物名称、符号名称、符号编码、符号风格元素;定义映射元素rec,通过记录元素和映射元素rec将XML配置文件中的“地物一符 号”的配置关系逐条存储到哈希列表中使映射元素rec进入先前建立的记录元素中,提取 出记录元素中的属性,提取属性时,首先提取符号的公共属性,即所有符号都具有的属性, 然后针对点、线、面符号再分别提取各自的符号属性,再将提取的属性存入到哈希列表中, 记录元素由XML文件的首节点遍历至终节点,映射元素rec对应将XML配置文件中“地物一 符号”配置关系全部存入哈希列表。进一步的,地图由多个数据图层叠加而成,每个图层包括至少一种地类属性,符号 化时遍历各数据图层,同时对具体数据图层遍历数据图层内的地类属性,利用地类属性字 段值来匹配已经存储的“地物一符号”配置关系,进行符号的调用,通过符号的调用实现符 号化当对一个数据图层进行符号调用时,首先建立单值专题图,然后将该图层中的地 类属性字段值储存在一维数组vals[]中;如果数据图层只有一种地类属性,则使用图层的 风格,在哈希列表中的“地物一符号”配置关系中查找对应的记录,同时查找符号颜色与字 体的相应属性,然后调用属于地物本身的符号;如果数据图层有多种地类属性,则循环遍历 这些地类属性,在各种地类属性中分别查找“地物一符号”配置关系,调用符号。本发明为了彻底去除现有符号化技术的“手工化”,提供了一种批量符号化的方 法。这种方法基于国内超图平台,先对符号库进行设计,对超图的符号编辑器进行扩展和编 辑。超图分别提供了点状符号库、线型库和填充库,三种库的结合就是所研究的符号库。依 照《2007版大比例尺地形式》中国家标准符号,对符号库中的一些符号进行修改和编 辑。然后,将符号库中的各类符号及其属性编写到XML配置文件中,将XML配置文件中“地 物-符号”配置关系,存入哈希列表中。成图时,导入数据并添加地图,通过循环的算法遍历 每个数据图层以及其中每个元素的属性,根据元素的地类属性,查找并调出哈希类表中的 “地物_符号”映射关系,最终将各图层各元素符号化。有益效果本发明对地图成图的重要环节——符号化过程进行了改进,彻底摆脱了 “手动”选择或编辑符号的过程,使符号化过程在数据量很大的情况下仍然能够快速,准 确。只需通过地物的固有属性,查找哈希列表,运用XML配置文件获取“地物-符号”对应 关系,最终从符号库中调出相应符号,由于地图中的地物按地类属性分为几种,本发明从地 类属性对地物进行分批符号化,不需要人工进行选择设置,实现地形图符号的批量调用与 快速、准确地绘制,这主要得益于本发明以超图符号库的数据为基础,配置了新的符号库, 超图原来的符号编辑器中的符号很多与《国家基本比例尺地式2007版》中的符号有出 入,本发明以《国家基本比例尺地式2007版》为基础,在原来的超图符号编辑器上对符 号的形状、大小进行了修改,也就是将超图符号编辑器进行改造,使其以新的符号库表现出 来,再应用XML模式作为数据交换格式,在XML文件中建立了 “地物-符号”对应关系以及 符号自身的属性,然后采用哈希列表存储这样的关系,再逐图层逐元素地进行快速、批量的 符号化。另外,本发明的XML配置文件由用户配置,并通过哈希列表存储,可以随时进行详 细修改,修改符号库和XML配置文件,用户在进行地图符号编辑的同时,可以将不满意的符 号进行属性的修改,或者根据需求修改符号的颜色、尺寸等属性,使用户在符号化之前能够 手动修改符号库,同时也能手动修改XML配置文件,实现了对系统边操作边修改的过程。
图1为本发明方法流程图。图2为本发明符号库、XML配置文件以及哈希列表结构关系图。图3为本发明存储“地物_符号”配置关系的流程图。图4为本发明符号调用关系示意图。图5为本发明符号调用流程图。
具体实施例方式如图1,本发明的步骤包括1)、导入外业测量中GPS/PDA数字化采集得到的地形图SHP数据,并将数据添加到 地图;2)、以超图符号库的数据为基础,配置符号库,设置编辑符号及其符号属性;3)、设置XML配置文件,记录“地物一符号”配置关系;4)、将XML配置文件中的“地物一符号”的配置关系存储到到哈希列表中;5)、获取地图的数据图层,根据其中表示地物的地类属性的属性值,查找并调出哈 希列表中的“地物_符号”配置关系,从符号库中调用符号,进行符号化;6)、检查数据图层中是否有未赋上符号的地物,有则重新配置符号库,设置该地物 的符号,然后添加入符号库,并相应重新设置XML配置文件,再进行步骤4)、5)符号化;数据 图层中无未赋上符号的地物,符号化成图完成。本发明主要是在超图平台上实现的,运用了超图的函数和符号编辑器,在操作过 程中,只要将数据中表示地类属性的字段值填入即可,同时可以在符号化的过程中对符号 的样式以及符号自身的属性进行修改,不仅快速实现了地图批量符号化的功能,也提供了 对地图符号“边修改边赋予”的操作,满足了用户的需要。下面说明本发明在技术方案上的实现。
(1)超图符号编辑器的改进,即新符号库的设置符号库中无论点符号、线符号还是面符号,都由编码、名称、单位和相应的符号属 性组成。其中点符号属性包含点的尺寸和颜色;线符号属性包含线的宽度和颜色;当面符 号存在边界部分时,面符号属性包括边界线宽,边界线颜色以及填充物颜色,当不存在边界 部分时,它只包括填充物的颜色。对于点符号编辑器,指定的符号可查到其在库中的名称和编号,有的符号可以对 其按照图式进行编辑,点符号编辑器提供了基本的符号编辑;绘制新的或在原符号基础上 编辑所需的符号时,需要设定对应的新符号编码,并保存到符号库中,全部完成后将点状符 号库文件保存为后缀为.sym的符号文件以备存储和调用。对于线符号编辑器,与点状符号的编辑器类似,通过新建、打开已有的线状符号文 件,线状符号文件后缀为.lsl,双击需要编辑的线状符号,弹出线状符号编辑对话框,即可 对组成线状符号的各个图元进行参数修改和编辑。对于面符号编辑器,在制作面状符号(填充符号)过程中,可以在编辑框中绘制特 定的填充图形,也可以选择已经有的点状符号来填充面状符号。完成后将面状符号文件保 存至后缀为.bru文件中。上面所提到的.sym、. Isl和.bru文件构成了超图内置的符号库,作为本发明所支 持的内置符号库,直接为系统调用符号提供了纽带。因此,修改和添加超图三种符号编辑器 中符号的过程实质上就是本发明的符号库的配置过程。(2)符号的存储制作一般符号,包括点、线、面符号,是用程序调用XML配置文件中的符号,而不是 通过算法绘制符号,因此需要在XML配置文件与输出端形成一种纽带,即如何在程序显示 出的地物中调用准确的符号。由于XML配置文件中同一类符号的每条记录的地类的属性均 一致,因此可以用哈希列表作为数据结构来存储地物与符号的对应关系。图2为符号库、 XML配置文件以及哈希列表结构关系图。建立一个地物与符号配置关系的记录元素,初始时,记录元素指向XML配置文件 中的首节点“styleConf”,记录元素记录每条“地物-符号”配置关系以及符号的相关配置, 包括地物名称、符号名称、符号编码、符号风格元素;定义映射元素rec,通过记录元素和映射元素rec将XML配置文件中的“地物一 符号”的配置关系逐条存储到哈希列表中,也包括颜色和字体设定文件使映射元素rec进 入先前建立的记录元素中,提取出记录元素中的属性,提取属性时,首先提取符号的公共属 性,即所有符号都具有的属性,然后针对点、线、面符号再分别提取各自的符号属性,再将提 取的属性存入到哈希列表中,记录元素由XML文件的首节点遍历至终节点,映射元素rec对 应将XML配置文件中“地物一符号”配置关系全部存入哈希列表。首先建立哈希列表,然后通过映射元素rec读取XML配置文件中的“地物-符号” 配置关系。读取时首先清空哈希列表中已有的地物-符号配置关系,用映射元素rec进入 先前建立的记录元素中,提取出记录元素中的属性,提取属性时,首先提取公共属性,即所 有符号都具有的属性,包括编码、名称、单位,然后针对点、线、面符号再分别提取各自的符 号属性,然后调用超图平台中提供的AddStyleMap函数将记录元素插入到哈希列表中,记 录元素由XML文件的首节点遍历至终节点,映射元素rec对应将XML配置文件中“地物一符号”配置关系全部存入哈希列表。流程图如图3所示,当记录元素遍历至XML配置文件的终 节点,循环结束。在完成将记录插入哈希列表后,下一步就是在列表中搜索相应的记录,然后在所 需的各个数据图层中调用相关符号,最终实现地图的批量符号化。(3)符号的调用在完成符号的存储之后,地图中应该调用其中的符号,使其显示出来。在添加地图 的数据中,都有相应的元素,它们中表示地类的属性字段都通过“style”表示,例如某些点 元素的“style”代表三角点,而有些线元素的“style”代表公路,我们将“style”称为表示 地类的属性字段,一般一套导入的数据中的地类属性字段名称相同。因此,调用符号的思想 就是利用这些属性字段值来匹配已经存储的“地物-符号”配置关系,来实现符号的调用。地图由多个数据图层叠加而成,而每个数据图层中可能有若干种地类属性,例如 点数据中可能有不同的点代表不同的地类,即地类属性值不同,因此首先要遍历各个数据 图层,在各个数据图层中还要遍历其中各个元素代表的地类属性,通过两层循环使符号“对 号入座”地显示在元素上方。如图4所示。当对某一数据图层进行符号调用时,首先建立单值专题图,然后将该图层中的地 类属性值储存在一维数组vals[]中。如果某数据图层只有一类地物,则使用图层的风格, 应用FindSty 1 eMap函数在原本已存在于哈希列表中的“地物-符号”配置关系中查找对 应的记录,可同时查找到符号颜色与字体的相应属性,然后调用属于地物本身的符号;如果 数据图层有多种地类形式,还要通过循环遍历这些地类属性,在各种地类属性中分别应用 FindStyleMap函数查找配置关系、调用符号。其流程图如图5所示。以上可看出,符号在地图上的调用过程实质上就是地图符号化的过程。本发明先 将符号库中的点、线、面符号以XML配置文件表达出来,并将“地物_符号”配置关系储存在 哈希列表中,然后逐图层、逐地类属性地将符号调用出来,实现了批量地调用符号。下面通过实例数据对本发明的使用效果进行说明将几个“SHP”数据导入到系统中,数据是在宁波象山某村及周边地区应用GPS/ PDA现场测得的,数据的类型包括“GPSPoints (高程点)”、“镇界”、“提岸”、“独立地物”、“沟 渠”、“河流”、“湖泊”、“机耕路”、“居民地”、“绿地”、“乡村路”、“小路”和“鱼塘”。经过单一图
层编辑后,将所有数据导入到同一图层,即添加成地图。在对地图进行符号化前,首先要对 符号进行配置,符号化配置分为符号库配置、XML文件配置以及所要符号化的属性字段。其 中用户可通过符号库设置对符号样式进行修改。同时用户也可通过配置文件设置对XML配 置文件中的符号属性(颜色,线条等)进行修改。本实施例中符号库配置以及XML文件配置 均为默认,导入的数据中,属性中“Layer”字段为地物类型,在符号化字段上填写“Layer”, 其中“Layer”记录着各个元素的地类属性。配置完成之后,将数据批量符号化,得到符号化后的地图。
权利要求
一种批量符号化的快速成图方法,其特征是基于超图符号库,进行以下步骤1)、导入外业测量中GPS/PDA数字化采集得到的地形图SHP数据,并将数据添加到地图;2)、以超图符号库的数据为基础,配置符号库,设置编辑符号及其符号属性;3)、设置XML配置文件,记录“地物—符号”配置关系;4)、将XML配置文件中的“地物—符号”的配置关系存储到到哈希列表中;5)、获取地图的数据图层,根据其中表示地物的地类属性的属性值,查找并调出哈希列表中的“地物 符号”配置关系,从符号库中调用符号,进行符号化;6)、检查数据图层中是否有未赋上符号的地物,有则重新配置符号库,设置该地物的符号,然后添加入符号库,并相应重新设置XML配置文件,再进行步骤4)、5)符号化;数据图层中无未赋上符号的地物,符号化成图完成。
2.根据权利要求1所述的一种批量符号化的快速成图方法,其特征是通过符号编辑器 配置符号库,符号库包括点符号、线符号和面符号,均由编码、名称、单位和相应的符号属性 组成,其中点符号属性包含点的尺寸和颜色;线符号属性包含线的宽度和颜色;当面符号 存在边界部分时,面符号属性包括边界线宽,边界线颜色以及填充物颜色,当不存在边界部 分时,它只包括填充物的颜色;通过点符号编辑器、线符号编辑器和面符号编辑器修改或添 加新符号,完成符号库的配置;将符号库中的各类符号及其属性以“编码”、“地物名称”、“符 号名称”、“符号图层”的顺序编写到XML配置文件中,得到“地物一符号”配置关系。
3.根据权利要求1或2所述的一种批量符号化的快速成图方法,其特征是用哈希列表 作为数据存储结构,将XML配置文件中的所有“地物一符号”配置关系存入哈希列表,具体 为建立一个地物与符号配置关系的记录元素,初始时,记录元素指向XML配置文件中的 首节点“styleConf”,记录元素记录每条“地物-符号”配置关系以及符号的相关配置,包括 地物名称、符号名称、符号编码、符号风格元素;定义映射元素rec,通过记录元素和映射元素rec将XML配置文件中的“地物一符号” 的配置关系逐条存储到哈希列表中使映射元素rec进入先前建立的记录元素中,提取出 记录元素中的属性,提取属性时,首先提取符号的公共属性,即所有符号都具有的属性,然 后针对点、线、面符号再分别提取各自的符号属性,再将提取的属性存入到哈希列表中,记 录元素由XML文件的首节点遍历至终节点,映射元素rec对应将XML配置文件中“地物一符 号”配置关系全部存入哈希列表。
4.根据权利要求1或2所述的一种批量符号化的快速成图方法,其特征是地图由多个 数据图层叠加而成,每个图层包括至少一种地类属性,符号化时遍历各数据图层,同时对具 体数据图层遍历数据图层内的地类属性,利用地类属性字段值来匹配已经存储的“地物一 符号”配置关系,进行符号的调用,通过符号的调用实现符号化当对一个数据图层进行符号调用时,首先建立单值专题图,然后将该图层中的地类属 性字段值储存在一维数组vals[]中;如果数据图层只有一种地类属性,则在哈希列表中的 “地物一符号”配置关系中查找对应的记录,同时查找符号颜色与字体的相应属性,然后调 用属于地物本身的符号;如果数据图层有多种地类属性,则循环遍历这些地类属性,在各种 地类属性中分别查找“地物一符号”配置关系,调用符号。
5.根据权利要求3所述的一种批量符号化的快速成图方法,其特征是地图由多个数据 图层叠加而成,每个图层包括至少一种地类属性,符号化时遍历各数据图层,同时对具体数 据图层遍历数据图层内的地类属性,利用地类属性字段值来匹配已经存储的“地物一符号” 配置关系,进行符号的调用,通过符号的调用实现符号化当对一个数据图层进行符号调用时,首先建立单值专题图,然后将该图层中的地类属 性字段值储存在一维数组vals[]中;如果数据图层只有一种地类属性,则使用图层的风 格,在哈希列表中的“地物一符号”配置关系中查找对应的记录,同时查找符号颜色与字体 的相应属性,然后调用属于地物本身的符号;如果数据图层有多种地类属性,则循环遍历这 些地类属性,在各种地类属性中分别查找“地物一符号”配置关系,调用符号。
全文摘要
一种批量符号化的快速成图方法,基于超图符号库,进行以下步骤(1)导入外业测量得到的地形图SHP数据,并将数据添加到地图;(2)配置符号库;(3)设置XML配置文件,得到“地物—符号”的配置关系;(4)将“地物—符号”的配置关系存储到到哈希列表中;(5)获取地图的数据图层,根据地物地类属性和“地物-符号”配置关系,从符号库中调用符号,进行符号化;(6)检查数据图层中是否有未赋上符号的地物,有则重新配置符号库,若无所需要的符号,则添加入库,并重新设置XML配置文件。本发明提出了一种批量符号化的成图方法,加快了地形形绘制与编辑速度,提高图形质量,实现地形图符号的批量调用与快速、准确地绘制。
文档编号G06F17/30GK101916297SQ20101026646
公开日2010年12月15日 申请日期2010年8月30日 优先权日2010年8月30日
发明者吴向阳, 梁洪宝, 毋东, 王庆, 王慧青, 高斌 申请人:东南大学