基于MapGIS快速成图技术的研究.pdf
第31卷第3期 2008年5月 现 代 测 绘 Modern Surveying and Mapping Vol.31 ,No. 3 May. 2008 基于MapGIS快速成图技术的研究 虞泰泉,吕志慧 江苏省基础地理信息中心,江苏 南京210013 摘 要 本文主要研究了两个地理信息平台Arcinfo和Map GIS中数据的类型、 相互转换关系等,并实现了由 Arcinfo的SHP格式数据到Map GIS格式数据的无损转换,以及地理信息数据的快速成图,为不同平台数据的集 成、 地理信息系统如何能更好地服务实际工作提供了一定的参考价值。 关键词 地理信息 Map GIS Arcinfo 快速成图 中图分类号P208 文献标识码B 文章编号1672 - 4097200803 - 0042 - 02 1 概述 本文研究的技术作为江苏省地图数据库建设 项目的关键技术,主要是解决快速生成各类地图和 快速进行地图符号化的技术难题。 2 数据分析 项目基础地理信息数据选用Arcinfo的SHP 格式数据,这可以避免Map GIS数据转换工具在转 换时对数据的一些限制 , 如E00格式,一条线的节 点必须低于500等 ,SHP格式可以最大程度地保 证数据的严谨性,使元数据的空间结构和数据结构 及属性与元数据保持一致。 Map GIS数据类型主要有点、 线、 面区三种, 其中点类型分为子图PN T_SUB、 字符串PNT_ NOTE、 圆 PN T_ CIR、 弧 PNT_ ARC 、 图像 PNT_ IMA GE以及文本PNT_ TEXT六种,与 Arcinfo对应关系如下表 序号Map GISArcinfo 1点点、 注记 2线线 3面面 最终Map GIS地图成果数据为含有线型、 符号、 颜色等的公开出版地图文件,包括点3. wt、 线 3 . wl 、 面3 . wp 文件。 3 实现思路 本文是要实现SHP格式数据快速转换为 Map GIS格式数据,同时保证图形、 属性信息不丢 失,经分析有以下两种思路 1 SHP格式数据 → 按标准样式符号化 → 编程 批量生成Map GIS格式数据 2 SHP格式数据 →Map GIS数据转换工具 → Map GIS格式数据 → 制作标准符号文件 → 编程匹配 Map GIS数据 → 编程批量生成最终文件 综合分析,本文采用方法二来实现快速成图, 采用VB610做为编程语言;Map GIS文件读取接口 采用Map GIS SDK617。 4 关键技术 经以 上 分 析,本 文 研 究 的 关 键 技 术 在 于 Map GIS文件的访问、Map GIS文件的符号化以及 Map GIS文件的批量生成。 4. 1 Map GIS文件访问 MapGIS文件可通过Map中LoadMapFile方法 加载工程文件,加载后可通过Map的FindFirst 、 FindNext方法遍历取出点、 线、 面文件;点、 线、 面文 件也可以直接从文件读取,可分别采用PntArea、 LinArea、RegArea的Load方法访问具体文件。 4. 1. 1 从工程文件中获取 Dim PubComPrj As Map Dim layer As MapLayer Dim pntObj As PntArea 点工作区 Dim linObj As LinArea 线工作区 Dim regObj As RegArea 面工作区 Set PubComPrj New Map 创建Map对象 If PubComPrj Is Nothing Then Exit Sub End If 装入文件 xx PubComPrj.LoadMapFile 加载Map GIS工程文件 If xx 0 Then Exit Sub Set layer PubComPrj. FindFirst gisFINDTYPE _ NOGROUP While Not layer Is Nothing 循环工程文件中的点、 线、 面层 Set pntObj layer. WorkArea 得到工作区线、 面处理 类似 此处插入处理语句 ⋯ Set layer PubComPrj. FindNext Wend Set pntObj Nothing 释放工作区对象 Set layer Nothing 释放图层对象 Set PubComPrj Nothing 释放地图对象 4. 1. 2 从点、 线、 面文件中直接获取 Dim pntObj As PntArea 点工作区 Dim linObj As LinArea 线工作区 Dim regObj As RegArea 面工作区 打开一个点文件 If Not pntObj.Load Then线、 面处理类似 Exit Sub End If 此处插入处理语句 ⋯ 4. 2 Map GIS文件符号化及批量生成技术 符号化步骤标准符号文件 → 读取符号信息 → 匹配Map GIS格式数据并生成新的文件 4. 2. 1 读取符号信息 此处是获取点信息,线、 面信息的获取类似 Dim flag As Long For i 1 To pntObj. Count flag pntObj. GetInfoi , PtInfo 将PtInfo改为LeInfo、RgInfo即可 If flag 1 Then 子图 If PtInfo. Type gisPNT_SUB Then 此处插入子图信息读取语句 字符串 ElseIf PtInfo. Type gisPNT_NOTE Then 此处插入字符串信息读取语句 End If Next i 4. 2. 2 更新Map GIS格式数据 Dim pntlst As New IDList 图元列表 Dim PtInfo As New Pnt_Info Dim PntEnd As PntArea For i 1 To pntObj. Count flag pntObj. GetInfoi , PtInfo If flag 1 Then 以下代码针对子图,其它类型类似 PtInfo. sub. subno ⋯ 赋子图号 PtInfo. sub. Height ⋯ 赋子图高 PtInfo. sub. Width ⋯ 赋子图宽 PtInfo. sub. angle ⋯ 赋子图角度 ⋯ 赋子图其它相关信息 flag pntObj. UpdateInfoi , PtInfo 更新子图 pntlst. Append i End If Next i test pntObj. CopyListpntlst , PntEnd PntTest. Save FileNameFileName要生成的Map GIS 文件名 对于批量的文件生成,只需要循环调用上述语 句即可。 5 结束语 通过对Map GIS简单的二次开发,针对实际工 作中的需求拓展了Map GIS系统的原有功能,使得 快速成图成为可能。利用该技术进行地图的快速 成图,用户只需要按照需求添加标准参数文件,其 它的均自动处理。经过实际测试,该技术减少了手 工操作量,生产效率提高了60 ~70 ,具有很高 的实用价值。 参考文献 1 陈欣.浅谈Map GIS到ArcGIS数据自动转换实现.国土 资源信息化[J ]. 2005 ,5 2 周顺平,李雪平. MAPGIS二次开发库的设计与实现简 介[J ].地球科学,1998 ,234 3 郭际元,曾文. Map GIS地理信息系统的二次开发[J ].测 绘信息与工程,2000 ,251 Rapid Mapping Technology Based on MapGIS Yu Taiquan , Lu Zhihui Provincial fundamental Geomatics center of Jiangsu , Nanjing 210013 Abstract Data type and data conversion are studied of two Geographic Ination Plat Arcinfo and Map GIS , data lossless conversion is realized from the SHP at of Arcinfo to Map GIS at , as well as the rapid mapping using geographic ination data is realized. That supplies some reference value for different plat data integration and better serve for actual work. Key words Geographic ination; Map GIS Arcinfo ; rapid mapping 34第3期虞泰泉等基于Map GIS快速成图技术的研究