测绘地理信息   2016, Vol. 41 Issue (5): 59-61
0
一种新的快速自动填充区图元的方法[PDF全文]
谭娟1, 张肃1    
1. 四川省地质调查院, 四川 成都, 610081
摘要: 针对制图中会对数量繁多、类别众多的区图元填充颜色,且会对某些图斑的颜色乃至边界、形状频繁改动,从而需要反复填充的问题,提出了快捷、一步到位地对区图元重新自动赋色的方法。利用dbf格式文件能被MapGIS软件属性模块调用的功能,MapGIS里图元连接属性的功能,“文件转换”模块里“成批属性赋参数”的功能几者结合,能解决这个问题。当图斑数量越多,改动越频繁时,它的便捷性比起其他方法更明显。
关键词: 区图元     MapGIS     dbf     成批属性赋参数     自动赋色    
A New Method of Filling Colors Fast and Automatically in Polygon
TAN Juan1, ZHANG Su1    
1. Geological Survey of Sichuan, Chengdu 610081, China
First author: TAN Juan, engineer, main research direction for remote sensing and geographical information system. E-mail: lindatan@126.com
Abstract: In cartography, we often fill colors in polygon objects of large quantities and various categories, and fills repeatedly when changes someone’s boundaries, shapes and colors frequently of them. To solve this problem, This article proposes a convenient way to fill colors in polygon projects automatically in MapGIS. we can utilize the function of calling DBF file module in MAPIS, the function of connecting properties in MapGIS, and the function of assignment in batches according to properties in MapGIS File conversion block together to fulfill the requirement. When the quantity of objects becomes larger and changes of objects become more frequently, the method is more convenient than other methods.
Key words: polygon     MapGIS     dbf     assignment in batches according to properties     fill colors automatically    

MapGIS是我国性能较好的GIS软件平台,集数字制图、数据库管理及空间分析为一体[1],被广泛地应用到地质勘查、测绘、土地管理、环境、国防等行业。其制图功能方便、灵活、精度高,但就其区域填充功能而言,MapGIS里拓扑造区后,只会自动给每个区块生成随机色,想要将众多区块按照属性特征分门别类赋色,属性特征相同的区块统一颜色,同时又与其他类别属性特征的区块颜色区分开来,并且每种类别的区图元的参数会因工作需要随时修改,在数量繁多、属性类别众多的情况下,要频繁修改,反复实现整体区图元的填充。目前通常有3种办法:①逐一修改,繁琐而且容易遗漏,降低图件质量;②运用“输入编辑”模块里的“根据属性赋参数”功能,相比第一种方法,工作效率及准确率有相当大的提高,但对于种类繁多的区域填充,这种方法仍然费时,不能一步到位;③唐桂彬[2]探索出通过修改区明码文件,以达到修改区文件的特性,从而达到重新给区图元赋色的目的,这种办法能一步到位,但操作起来并不方便。笔者经过长期的实践研究,摸索出一种更为便捷的办法:利用dbf格式文件能被GIS软件属性数据管理模块调用的功能,MapGIS里图元连接属性的功能,以及MapGIS软件中的“文件转换”模块中的“成批属性赋参数”功能三者结合,能顺利解决这个问题。

1 MapGIS相关功能分析

dbf是一种数据库格式文件[3],Foxbase、dBase、VisualFoxpro等通用数据库处理系统会运用到dbf格式文件[3],Office中的Excel、Access的一些版本(如Excel2003、Access2007) 支持Foxbase、dBase、VisualFoxpro等数据库,所以Excel、Access录入数据、制作dbf文件便捷。另一方面,就MapGIS来说,任何图元数据的属性结构都具有字段名、数据类型、长度(或小数位数)等特性,图元的属性结构与dBase、Foxbase等数据库的表结构相当[4],并且MapGIS的外部属性数据库可以是dBase、Foxbase、Foxpro、VisualFoxpro、Access、Excel、Paradox、SQL Server、Oracle、Sybase等数据库软件的文件[5],由此可见,MapGIS也能接受dBase、Foxbase、VisualFoxpro等多个数据库[6],所以MapGIS能对dbf文件进行调用。工作中常用的在MapGIS的“属性库管理”中进行属性连接就是这个功能的体现之一。另外,MapGIS里可以根据属性赋参数,且在MapGIS的“文件转换”模块里“输入”菜单有“成批属性赋参数”功能,因此实现数量众多且类别多样的区图元的一步到位自动赋色有了理论依据。只要把多种类别图元的颜色归总到一张dbf表格文件里,再结合MapGIS里的“连接属性”及“文件转换”模块的“成批属性赋参数”功能,就能实现多类别的图元颜色一步到位的自动填充。

2 自动填充区图元功能 2.1 成批属性赋参数工作流程

解决该问题涉及到Excel或Access、MapGIS里的“属性库管理”和“文件转换”两模块三者之间的操作,工作流程如图 1所示。

图 1 成批属性赋参数总体流程图 Figure 1 Flow Chart of Assignment in Batches According to Properties

2.2 自动分类填色的实现

下面以“四川省美姑县地质灾害详细调查”项目中的工作为例,论述自动分类填色的实现过程。

1) 先新建1个点文件,在MapGIS里每1类地类区块图元中间落上代号1、2、3等,1个代号代表 1类,生成lable点,将lable与区合并。

2) 制作色表。如图 2所示用Excel新建1个区颜色表,在表中给各个地类码指定1个颜色索引号(见表中最后1列),此例中的各个地类码为“代号”,每个不同的地类码指定1个唯一的颜色色号,再存成dbf格式。

图 2 颜色属性表示意图 Figure 2 Diagrammatic Sketch of Color Property Indicates

可以看出,当存成dbf格式后,表格中的数据会自动改成小数格式,此改动不影响后面的操作。

3) 连接属性。 在MapGIS“属性库管理”模块里用关键字段“代号”连接。

4) 将区文件统改成1个与色表里规定的颜色不相同的颜色。此步骤是必须,因为系统拓扑重建随机生成的图斑颜色与自己做的颜色属性表的颜色很可能有重复。

5) 成批属性赋参数。 在MapGIS“文件转换”模块里,不用打开区文件,在“输入”菜单下最后1栏“成批属性赋参数” 1项,点文件和线文件点击“取消”,选择区文件,随即MapGIS弹出对话框(如图 3所示)。

图 3 “成批属性赋参数”弹出对话框(1) Figure 3 The Dialog Box (1) Ejected from “Assignment in Batches According to Properties”

没有出现“颜色”字段时都点击“取消”,直至出现“颜色”字段,点击“确定”,如图 4所示。

图 4 “成批属性赋参数”弹出对话框(2) Figure 4 The Dialog Box (2) Ejected from “Assignment in Batches According to Properties”

至此,地类的区图元参数中的“填充颜色”项都被赋上色表指定的颜色。

6) 由于此图幅的水体整体性强,不分散,且数量少,在全体图元的颜色被赋完之后单独赋。

7) 因为工作需要,此图幅的居民地需赋上图案参数,如“图案号”、“图案颜色”等,在以上步骤之后另赋,如图 5所示。

图 5 局部图斑另赋图案参数示意图 Figure 5 Diagrammatic Sketch of Additional Assignment in Local Polygons

8) 用MapGIS编辑模块里“根据属性赋参数”检查区图元有无赋漏掉的色,如有,则单独局部修改。至此,所有区图元的颜色都被赋上。

2.3 关键技术

1) 在“成批属性赋参数”里选择区文件后,选择要赋参数的属性字段,当系统没有出现想要赋参数的属性字段时,应点击“取消”,最终选择有要赋参数的字段,如“颜色”才点击“确定”,这个过程需要点击3~7次不等。

2) 在excel里做颜色属性表时,可以将水域和道路的颜色加进去存成dbf文档,也可以将水体和道路在进行整体赋色后单独赋色。如果水体分散且数量多,可以生成lable点文件时将水体和道路都加上,并且在颜色属性表里加上。

3) 有时区图元需要赋图案参数的,如图案号、图案颜色等,在进行全体赋色之后单独操作。此工作只能赋整体的图斑颜色,图案参数需另赋。但从整体来说,仍然极大地缩短了工作周期。

4) 此方法适用于MapGIS 6.2及以上版本。

5) 如需修改某一类的颜色,则在Office里重作dbf表格,再进行以后的步骤,如果是区域边界有改动,则需确定地类码的lable文件有无改动,然后再进行以后的步骤。

3 结束语

本文方法比起修改明码文件的办法通俗易懂,且操作便捷,更能被广大使用者接受,在区图元形状、边界或颜色属性有所改变时,能快捷、一步到位地重赋图元颜色,并且按照以上实现过程,也能保证无遗漏图斑,制图的质量能得到保证[7]。当图斑数量越多,改动越频繁时,它的便捷性越明显。另外,它不局限于土地利用图的制作,也能延伸扩展到其他专题图件的应用,值得推广。

参考文献
[1] 中地软件丛书编委会. MapGIS地理信息系统实用教程[M]. 武汉: 武汉中地数码科技有限公司, 2003 .
The Editoral Board of MAPGIS Software. MAPGIS Geographic Information System Practical Tutorial[M]. Wuhan: Wuhan MAPGIS Ditital Technology Co.Ltd., 2003 .
[2] 唐桂彬. MapGIS区文件自动分类填色的快速实现[J]. 测绘与空间地理信息,2015,38(1) : 94–97.
Tang Guibin. Fast Implementation of the Method to Fill Color of MapGIS Area Plain Code File[J]. Geomatics & Spatial Information Technology,2015,38(1) : 94–97.
[3] DBF是什么文件. DBF文件打开方法 . http://www.jb51.net [2015-10-22] Anonym. What is the DBF file?How to open it? www.jb51.net [2015-10-22]
[4] MapGIS应用教程第四章属性数据采集 www.wenku.baidu.com[2015-10-22] Anonym. In the Fourth Chapter MapGIS Application Tutorial Attribute Data Acquisition www.jb51.net[2015-10-22]
[5] 李成凯, 韩丽蓉, 潘起来, 等. MapGIS与一些常用软件的相互调用方法[J]. 青海大学学报(自然科学版),2008,26(3) : 69–71.
Li Chengkai, Han Lirong, Pan Qilai, et al. MapGIS and Some Commonly Used Software Method is Called[J]. Journal of Qinghai University(Natural Science),2008,26(3) : 69–71.
[6] 程一曼. MapGIS与一些常用软件的相互调用方法[J]. 印刷工业,2009,27(8) : 67–69.
Cheng Yiman. MapGIS and Some Commonly Used Software Method is Called[J]. Printing Industry,2009,27(8) : 67–69.