资源描述:
2008年 文章编号 1672 - 82622008 03 - 32 - 03 中图分类号 P209 文献标识码B MapGIS导入Mif注记变形处理 姚路 3 3 收稿日期 20071221 作者简介姚路1977 , 女,工程师,主要从事GIS数据加工处理以及数据建库工作。 福州市勘测院 信息工程分院,福建 福州 350003 摘 要对MapGIS导入MapInfoMif格式注记过程中的位置、 字体大小以及旋转角度等的变形问题作了深入试验与研究,使 用F ME对导入前的Mif进行预处理,有效修正了注记在导入过程中所产生的变形,保证注记转换前后一致,避免了导入后还 需手工调整注记位置等操作,增强了数据转换过程的自动化程度。 关键词Map Info;Mif; FME;MapGIS;数据转换;注记处理 1 前 言 数据是GIS应用的基础,数据加工处理是一项基础 性的工作。由于GIS应用平台的多样性,各种格式间的 数据转换工作非常必要而且应用也相当广泛,如何实现 不同格式数据间的无损转换是数据加工处理工作的基 本要求。不同GIS平台格式的数据都有自己的特点,简 单的转换操作往往会引起数据变形或者数据如属性信 息等丢失,因而需要针对一些特定的转换操作做一些 特殊的处理。笔者对MapGIS平台导入Mif格式注记 时,注记会发生移位、 注记大小与旋转角度对源数据产 生差异等问题进行了分析研究,使用F ME对Mif格式数 据进行了转换前预处理,从而实现了MapGIS导入Mif 格式注记时,数据前后一致,避免了转换后不必要的重 复手工编辑工作,提高了数据处理效率。 2 问题提出 由于MapGIS是国产平台,若不做二次开发, FME 本身并不支持Tab格式到MapGIS格式的转换功能。 当需要把Tab格式数据导入到MapGIS平台时,较简单 的做法是把Tab格式数据导成Mif交换格式,然后使 用MapGIS平台的自带功能对Mif格式数据进行导入。 但是,使用MapGIS平台自带工具导入Mif格式数 据时,注记字体、 旋转角度、 位置等都会出现一定程度 的变形。 转换前后对比如图1所示,注记变形、 移位主要表 现为 1注记字体变小; 2部分注记顺时针旋转了90; 3注记发生移位,部分注记移位相当严重,如图 中“ 复康路 ” 、 “ 新市南路 ” 。 图1 Map Info环境下编辑好的数据 图2 导入到MapGIS后注记移位严重 引起变形的主要原因 1Map Info与MapGIS所支持的字体不同 Tab可使用两种类型的字体以“” 开头字体与 非以开头字体,这两种字体的字头朝向不一样,以 “” 开头字体的字头朝向是正西,非以“” 开头字体 23城 市 勘 测 第3期 的字头朝向是正北。如图2所示,“ 厦 ” 的字体是“ 宋 体 ”,“ 业 ” 的字体是“宋体 ” 。 图3 以开头与非以开头字体比较 而MapGIS仅仅支持几种内置的简单字体,不提 供字头朝向为正西的字体。因而在导入过程中,原先 字体以“” 开头的注记,就会顺时针旋转90 。 2定位点差异 Tab注记的定位点是左上角,而MapGIS注记的定 位点为左下角,MapGIS导入Mif格式注记时,在计算 注记的定位点时存在缺陷,注记在导入时都会出现一 定程度的位移。 3字体大小变形 Mif格式注记在导入MapGIS后,字变小。 由于上述原因,注记导入后会严重失真,图面变得 很混乱,若不对注记的位置进行调整,转换后的数据将 无法使用,因而需设法先对Mif进行预处理,以消除转 换过程中引入的变形。 3 处理原理 先对导入过程中注记的变形情况进行分析,找出 变形规律,再对源数据的注记进行导入前预处理,最终 实现预处理后的数据在导入到MapGIS时与预处理前 的源数据一致。 处理过程如下 1把以“” 开头字体的注记更改为相应的非以 开头的字体,如把“宋体 ” 更改为“ 宋体 ”,并逆时 针旋转90; 2重新计算注记定位点,以消除字体调整、 旋转 后发生的位移,确保注记字体调整、 旋转后图面与调整 前一致; 3修改字体大小,以消除导入过程中的字体大 小误差; 4研究MapGIS导入Mif格式注记时产生的移位规 律,先对Mif格式注记进行预处理,对注记做相反位移; 5使用MapGIS导入预处理后的Mif格式注记。 4 程序实现 411 程序流程图 Mif文件的预处理操作完全在FME环境下实现, 流程清晰,操作简单,流程如图4所示。 图4 程序流程图 412 关键问题 1注记编号 在开始读入Mif文件时,对每个注记赋予唯一编 号,后继的3个FEATUREMERGER工厂都使用此编号 进行匹配。总的处理思路是当计算注记的某些参数 会破坏元素的完整性时,数据就分开两个流程进行处 理,一份数据保持不变,另一份拷贝的数据作为计算参 数使用,参数计算完毕后,使用FEATUREMERGER工 厂以编号作为匹配条件,合并两份数据,结果是把计算 出来的参数赋给原始注记元素。 2 FEATUREMERGER使用 FEATURE MERGER工厂通常用于合并要素属性, 其原理是从对requestor输入的每个元素,以某项属性值 是否相等为条件,查找supplier输入的数据集,把匹配的 supplier元素的属性合并到匹配的requestor元素中。 上述流程共使用了3次FEATUREMERGER工厂, 分别用于计算注记字体调整后的中心点位置、 中心点 位移以及MapGIS导入Mif文件时产生的位移。 33姚路 1MapGIS导入Mif注记变形处理 2008年 3注记大小调整参数 MapGIS导入Mif文件时,注记会变小,对数据反 复试验得出注记转换后大概会缩小11307 7倍的经验 值。因而,在转换前先把字体放大11307 7倍,导入到 MapGIS时注记大小就与原始一致。 4注记位移参数 MapGIS在导入图面整饰良好的Mif数据时,由于注 记的移位,图面会变得很混乱,无法满足正常的使用要求。 因而,需要寻找MapGIS导入Mif文件时注记所产生的位 置偏差参数,并在转换前先对数据作相反的位移。 根据对数据的反复试验,得出MapGIS导入Mif注 记时定位点的位移关系 X′X0 Y′ Y 0 H -[ Y0 H -Y1]2 即,左下角Y值加字高H减去其与左上角Y值差的两 倍,当Y0HY1时旋转角度为0时 , 注记上提一 个字高;其中, X′, Y′为导入MapGIS格式后的定位 点坐标 ; X0、Y0为Mif格式注记的左下角位置坐标; X1、Y1为Mif格式注记的左上角位置坐标;H为Mif 格式注记高度。 坐标几何关系示意图如图5所示。 图5 注记转换前后的移位关系 413 处理效果 经过预处理的数据导入到MapGIS后,注记的图 面位置关系与原Map Info数据。对比如图6与图7所 示。 图6 Map Info原始数据 图7 预处理后导入到MapGIS 5 结 语 经过反复测试,通过上述方法处理后的注记,在使 用MapGIS自带的导入Mif格式数据功能进行导入时, 注记与在Map Info环境下打开完全一致,有效地改正 了注记在转换过程中出现的偏差,避免对数据进行重 复编辑的工作,大大提高了数据转换的效率,其原理可 直接应用于同种转换问题的处理中。 参考资料 [1] TroyNY, TheMap Info Interchange FileM IF For mat Speci2 fication,Map Info Corporation. The Process of Correcting the D istortion of the Text in Data Conversion Yao Lu Fuzhou Investigation and Surveying Institute, Fuzhou 350003, China AbstractThis paper studies the distortion of the text, the size of the text, the angle of the textwhen we convert the data from theM IF at to MapGIS for mat . And we correct the distortion of the text effectively by pretreatmenting the M IF files . We hope this paper has some referenced meaning when we convert the data at in the future. Key wordsMap Info;Mif; FME;MapGIS; data translation 43城 市 勘 测
展开阅读全文