当前位置 首页 >工作报告 > 心得感想 >

Mapgis属性连接的应用

作者:jkyxc 浏览数:

摘要:Mapgis作为优秀的国产制图工具,其属性操作功能具有很强的实用性。文章通过举例介绍了如何通过属性查询、属性赋值功能与图元参数修改等功能的配合使用,来解决繁琐费时的图件编制以及如何灵活运用点属性赋值功能,实现对无序图元作批量注释替换的思路及操作方法。

关键词:Mapgis6.7;图元属性挂接;WB表;属性检查;注释替换

中图分类号:P208 文献标识码:A 文章编号:1009-2374(2013)34-0038-03

Mapgis作为优秀的国产制图工具,从1991年诞生至今已经历了20多年的发展,尽管其版本已从最初的二维制图MapCAD发展到最新版的三维制图版本MapGIS IGSS 3D,但Mapgis6.7版本由于其占用计算机资源少、易于学习、操作灵活,在二维制图方面的优势依存,在地矿行业制图方面有着广泛应用。

属性操作是Mapgis的基本功能之一,如果说一张纸质图矢量化后已经实现了从纸质图向无纸化电子图的进步,那么当我们将一张信息数据表连接到相关的图元上之后,这张电子图的性质已发生了飞跃性变化。因为这时的图件所包含的信息量已不再是对纸质图形的简单复制,而是图形与数据库的结合,从而大大提升了图件包含的信息量和实用价值。因此掌握Mapgis6.7属性操作技能,对于从事科研生产工作者来说,是应具备的基本功。而根据实际情况灵活应用更能体现出Mapgis的实用性特点。下面将通过举例来介绍有关Mapgis6.7的部分属性处理功能以及如何处理特殊问题的技巧。本文涉及的系统和软件为XP SP3,同时安装有Mapgis6.7、Office 2003、Offic 2007。

1 图元属性连接(挂接)

1.1 图元属性表

参见图1,这是一个已挂接好属性的矿产地质图的一部分。当用鼠标点击图中的一个矿产符号图元(显示为灰色圆点),旁边立刻出现了一张描述该点的信息表,从该表中可以看到图面上看不到的其他信息,这就是图元属

性表。

1.2 属性连接操作

属性连接(挂接)的操作流程如下:制作Mapgis图→制作Execl属性数据表→制作mdb数据库表,修改字段→转换dbf数据表→生成WB表→属性挂接→检查属性挂接结果。

第一步,需要用Mapgis制作一张图,如图1。然后建一张Excel属性数据表(表1,该表文件名为“表1.xls”)

图1 矿产地图元及属性表样式

第二步,将表1转成dbf格式。由于Office 2007已取消了从Execl直接转换dbf格式的功能,所以要先用Access的导入功能将表1生成mdb格式的数据库表,然后用Access导出功能将数据表转存成dbf格式文档。

操作:运行Access 2003→菜单新建→空数据库→在“文件新建数据库”对话窗的文件名称栏输入任意一个名称,如“db1”→创建。于是生成了名称为db1的数据库。此时数据库还是空的,接下来要用上述的表1数据创建一个数据库表。

操作:在db1数据库对话窗菜单新建→导入表→确定→出现“导入”对话窗,文件类型选择(*.xls),然后从目录找到上述的“表1.xls”,点击“导入”→按照导入表向导逐一选择命令,在最后一步的“导入到表”一栏,填入要生成的数据表名,可填写为“表1”,点击完成,出现“完成向表‘表1’导入文件D:\表1.xls”的提示→确定,于是在db1数据库窗口出现了名称为“表1”的数据表。打开此数据表可以看到,其数据与上述表1的一致,表明数据导入正确。

接下来利用新建的“表1”创建dbf格式文件。

操作:打开db1数据库窗口,选择表选项卡→选中“表1”数据库表,双击打开→Access菜单文件→导出,进入“将表‘表1’导出为…”对话窗,保存类型选择DBASEⅢ(*.dbf),文件名填写为“表1”→导出。结果生成了“表1.DBF”文件。

第三步,设置表1.DBF的ODBC数据源。之所以要设置表1.DBF的ODBC数据源,是由于在后面进行图元属性连接时要用到,否则会出现找不到“表1.DBF”数据的现象。ODBC数据源设置步骤如下:

由XP系统窗口的开始→设置→控制面板→管理工具→数据源,双击打开,进入ODBC数据源管理对话窗口,选中“用户DSN”选卡,点击“添加”→在“创建新数据源”窗口,选择Microsoft Access DBASE driver(*.dbf,*.ndx,*.mdx)驱动程序目录,点击“完成”→进入“ODBC dBASE安装程序”窗口,在数据源名栏输入mydbf(此名称自定),将“使用当前目录”勾选去掉,点击“选择目录”命令,在出现的“选择目录”对话窗口找到包含上述“表1.DBF”的文件夹,此时“表1.DBF”目录将出现在窗口左边的栏目中,连续点击确定→确定,于是表1.DBF的ODBC数据源创建完毕。

第四步,创建MapgisWB表。WB表是Mapgis专用属性挂接表,为.wb格式,它具有文件小、挂接属性速度快的优点。用上述第二步创建的dbf表可以很容易地生成WB表。操作步骤如下:

运行Mapgis程序→库管理→属性库管理→进入“Mapgis属性管理子系统”窗口→菜单文件→导入,进入“导入外部数据”窗口,点击数据源下拉菜单,选中第二步创建的“mydbf”数据源名称,此时在窗口的“表格名称”和“导入字段”两个栏内会出现“表1.DBF”数据表的表头内容(注意,如果该两栏没有数据出现,就说明数据源没有连接成功,需要检查数据源的设置)→在下部内部数据(*.wb)栏内填写要保存的WB表的名称“挂表”→导入。于是创建好一个名称为“挂表”的WB表。

图2 数据连接属性设置窗口

第五步,属性连接(挂接)。运行Mapgis程序→库管理→属性库管理→进入“Mapgis属性管理子系统”窗口→菜单属性→连接属性,进入连接属性对话窗口(图2),在窗口上部选择要连接的Mapgis图元文件;在窗口下部选择上述第四步点创建的WB表,此时WB表的字段名将出现在“连入字段”栏中。通过下拉菜单选择,使窗口上部和下部的两个“关键字段”,名称相同。此点很重要。在窗口下部选择“改变字段名称”单项项即可,点击确定→出现小钟转动一下就消失,说明属性挂接完毕。

第六步,检查属性挂接结果。到文件目录找到已挂接属性的mapgis点文件,双击打开,用“修改点属性”工具查看点属性,显示样式见图1,该属性表显示内容与表1内容一致,说明属性挂接成功。

2 属性查询和图元参数修改

属性查询和参数修改是Mapgis属性操作和图元编辑的两项基本功能,两者配合使用,能起到批量编辑图元的作用,可使工作效率倍增。

例如,需编制一张综合矿产图,现有1840个矿产地,它们包含有98种矿产,其中大型规模的95个、中型规模的195、小型规模的1136个、矿点418个。要求每种矿产用一种符号表示,同时要求大、中、小型规模及矿点要分别用大小不同的符号表示(子图符号高宽度参数分别为8、6、4、3)。制图步骤如下:

第一步,用Mapgis投影变换模块将1840个矿产地批量投影上图,投影时选择矿产地编号作为带属性投影的关键字,结果生成1840个矿产地点图元。进行这种批量数据投影,上图的矿产地符号只能选择一种,比如选择实心圆点

符号。

第二步,制作矿产地的WB表,然后利用矿产地编号这个关键字为矿产地图元挂接属性。

第三步,按矿产资源规模修改矿产地投影点符号的大小参数,操作如下:运行Mapgis→图形处理模块→编辑处理,进入Mapgis编辑子系统窗口→菜单检查→工作区属性检查→进入“检查\选择工作区属性内容”对话窗,选择“点工作区”→“字段名称”选择“资源规模”,单选“直接选择”,在“属性内容”栏点击“大型”,此时图上的所有大型矿产地出现闪烁,表明大型矿产地全部被选中→菜单工具“修改点参数”,出现提示:“是否统改选中的95个[子图]参数”,选择“是”→将高度、宽度两个参数都改为8→确定。结果95个大型矿产地的符号的规模参数就修改好了。用同样的方法将中型、小型、矿点的矿产地符号的规模参数修改好。

第四步,将矿产地投影点符号修改为规定的矿产子图样式。进行此步操作的前提条件是矿产符号的子图库事先已制作好,此时每种矿产符号在子图库中都有固定的编号。操作如下:菜单点编辑→替换点参数→子图→确定→进入“MapCAD\Mapgis子图参数替换对话窗”,仅在“替换结果”栏目中勾选“子图号”,然后选择需要的矿产子图符号(或直接输入子图编号)→确定。这样就完成了指定矿产子图符号的替换。

上述共计进行了4次查询规模和参数修改操作、98次矿种子图替换操作。结果完成了包含98种矿产,分大、中、小型规模及矿点的1840个矿产地的矿产符号的制作。

3 分布不规律图元的注释替换

以综合矿产图(图1)为例,要在图上表示矿产地的基本信息需要五类图元,即矿产地位置点、矿产符号、矿产序号、矿产地名称、引线。其特点是:矿产地众多,故矿产符号量大(数以千记);为了互不叠压干扰,矿产符号可能已从原投影位置移位,且移位是无规律的;矿产地与矿产符号数量不相等(一个矿产地可能有多种矿产);矿产符号的文字注释位置不固定,可能位于矿产符号的周围的任意位置;当矿产地符号从原位置移位后,需要用引线联系矿产地符号与矿产地位置点。

这类大型图件一般都需经过多次研编、修改才能完成。首次编图时多数矿产符号、矿区名称、矿区编号都要根据矿产符号对地质内容或符号本身的叠压情况进行手工调整。

当首次编图的内容(如矿区名称、编号等)需要修改时,常规做法是通过图元属性查询,逐一查找和修改有问题的子图或注释,由于图元数量很大,故进行全图修改十分繁琐和费工。例如矿产地序号,只要有一个矿产地需要增、减,整图的序号就要重新用手工修改一遍。

针对上述问题,可以通过灵活运用Mapgis图元自动赋值的功能,进行注释替换,这样既可保证制图质量,又能大大提高图件编辑修改的工作效率。其操作思路如下:

首次编图时,矿产地位置点、矿产符号、矿产序号、矿产地名称要单独制作点图层文件,该四类点图元都要进行属性挂接,且各类图元的属性要有一个关键字段保持一致,同时要求其属性值具有唯一性。例如,将矿产地在储量表中的编号(上表编号)作为属性关键字,这是因为矿产地的上表编号具有唯一性。这点很重要,是能否正确进行注释替换的关键条件。

图3 设置标注位置参数对话窗

当原数据表中的矿产序号、矿产地名称被修改后,需要重新制作WB表,然后对矿产地序号、名称图元重新挂接属性。属性挂接完成后,运行Mapgis,使用点编辑的“根据属性标注释”命令,利用修改后的属性值为这两类图元重新赋注释。

要注意的是,“注释点位移”栏目的X、Y参数值(见图3),其含义是注释点与原注释图元的相对距离。可先用X=0、Y=0参数作注释标注实验,如果新注释未与原注释重合,不要保存操作结果,再次调整X、Y值,重复进行自动标注。经过2~3调整试验,就能使新注释与原注释位置重合。另外注意在保存新注释时,其图层号要与原注释图层号不同。这样在执行完注释标注后,就可以利用图层号将原注释筛选出来删除掉,剩下的就是新注释了。

这种操作方法适用于有属性值的点图元的注释替换,具有批量替换注释的特点,且处理速度非常快。

关于用Mapgis进行点图元属性挂接操作的四点说明:

3.1 挂接属性的“一化多”特点

点图元属性只要包含有一个字段,且此字段名、数据类型与WB表数据的某个字段完全一致(即关键字一致),那么就可以将WB表中的全部数据挂接到点图元上。换言之,点图元在进行最初的带属性投影时,生成的投影点的属性只要存在一个关键字,就可以实现后续的补充属性挂接,且所挂接属性的字段数目由WB表的数据项数目决定。

3.2 挂接属性的“一对多”特点

只要图元与WB表的关键字一致,WB表中的一条记录可以同时挂接到多个图元上,即图元数目可以与WB表的记录条数不一致。比如说,WB表有10条记录,对应于图上的10个矿产地,其中有一个矿产地有2种矿产,另一个矿产地有3种矿产,这样矿产符号的图元个数为13个,那么多出的3个图元只要其关键字存在于WB表中,那么用这10条记录可以正确地为13个符号图元挂接属性。

3.3 挂接属性的“多无妨”特点

若用于属性挂接的WB表中的记录比图元个数多,其中部分记录与当前图元无关键字对应,那么在挂接属性时多出的记录不会挂接到已有图元上,或者说,多出的记录不会干扰图元属性的正常挂接。

例如在编图过程中,一部分图元被删除不用了,而同时数据表中的另一部分数据值作了修改,由于数据量很大,一时无法挑出被删除图元对应的属性记录,那么可以使用全部数据重新制作WB表,为剩下的图元挂接属性。多余的数据不会对剩下图元的属性值产生干扰。

3.4 按Execl数据表→mdb数据库表(修改字段)→dbf数据表→WB表的流程方式生成的属性值

可以预先设定属性字段的类型和字长,可避免因字段长度不够而截断数据的现象,也可对属性数据的有效性进行限制。这比直接使用文本格式数据或Excel表数据导入属性要更为安全和有效。

参考文献

[1] Mapgis6.7帮助文档.

[2] Office 2003 Access帮助文档.

[3] Office 2007帮助文档.

作者简介:李勤林(1958—),男,江西省地质矿产勘查开发局赣西地质大队地质矿产高级工程师,研究方向:地质矿产勘查。

推荐访问:属性 连接 Mapgis

相关文章:

Top