您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > MIF数据与SHP数据转换软件的设计与实现
第1页共6页MIF数据与SHP数据转换软件的研制与实现(海南海口570203)摘要:每个GIS软件都有自己的内部数据格式和存储方式,MIF文件和SHP文件是最常用到的两种格式,本文主要研究如何在VC环境中,实现这两种格式在同一坐标系和不同坐标系的转换。关键词:MIF;SHP;VC1引言随着地理信息资源内容和种类的增多,人们对空间信息共享的需求越来越迫切,地理信息共享的必要性和难度也日益显现:一方面,社会各界对地理信息的共享需求越来越强烈;另一方面,大量数据用户苦于寻找可以使用的数据,有时即便知道数据拥有者或数据的存储地址,但却由于数据格式的差异不能真正使用获得的数据。多格式地理数据互操作与共享一直是近年来GIS应用系统开发中需要解决的重要问题。SHP文件是ESRI发布的通用地理数据格式,MIF是MAPINFO公开的外部交换文件,这两种格式是地理数据的两种主要的数据格式,因此实现两者之间的数据转换,对于地理数据的共享与应用有着举重轻重的作用。2MIF数据格式和SHP数据格式简介2.1SHP文件格式ArcGis是由美国ESRI公司开发的世界上应用最广泛的GIS软件之一。作为ArcGis使用的最主要的几种数据格式之一的Shapefile是ESRI公开发布的,这种数据格式正不断的加强能力去适应更复杂的空间数据,ESRI鼓励开发者和用户创造相互交换的能力,可以在更通用的环境下读取或者创建Shapefile。Shapefile的非拓扑空间几何信息是以一系列矢量坐标组成的形状来保存的,而属性信息则放在dBASE形式的表格中,每一条属性记录和相应的几何要素是一一对应的。正是由于Shapefile不用处理拓扑结构的数据,相比较于其它的数据源,它具有更快的绘图和编辑速度;并且Shapefile所占的存储空间较小更易于读写。一个Shapefile文件包括主文件(*.shp)、索引文件(*.shx)和数据库文件(*.dbf)。主文件储存Shapefile的图形信息;索引文件包含了对应于每一条主文件记录的偏移量;数据库文件主要存储与每一条几何信息相对应的属性信息。2.2MIF文件格式MAPINFO的数据格式主要分为TAB和MIF(MID)两种格式,TAB是MAPINFO唯一的数据存储格式,所有基于该软件上的应用系统都要以这种格式为依托。MAPINFO数据采用双数据第2页共6页库存储模式,属性数据存储在属性数据的表结构文件(.tab)与属性数据文件(.dat)中,空间数据保存在空间数据文件(.map)中,两者通过交叉索引文件(.id)联系。MIF(MID)是MAPINFO公开的外部数据交换文件。前者用于存储几何数据和位置数据,后者用于存储属性数据。MAPINFO主要通过MIF、MID两个文件与其他GIS软件建立数据接口,两者都能用文本编辑工具进行编辑,也可用其它程序生成。MIF由文件头和数据段组成,第一部分“文件头”定义了版本信息、字符集、投影参数坐标类型与表结构。第二部分为“数据段”,数据段包含MAPINFO定义的点、线、面、多义线、区域、圆弧、文本、矩形、圆角矩形和椭圆等实体。MID属性数据文件按MIF中定义的属性结构分别描述了每个图形对象的属性内容。3转换软件的设计及实现3.1MIF格式与SHP格式空间数据模型比较只有在对数据格式充分理解的基础上才能保证在转换过程中无信息丢失,下表从数据组织、属性数据、拓扑关系、三维信息四个方面列出SHP与MIF两种数据格式之间的异同:表1:数据模型比较数据组织属性数据拓扑关系三维坐标SHP格式空间数据按“要素”进行分类组织,要素是具有相同几何类型,代表同一物理含义的实体集合,如国道、省道、山峰。有属性数据,每个要素对应一个属性结构无有MIF格式按图层组织空间数据,一个图层可以包含不同几何类型的数据有属性数据,每个图层对应一个属性表结构无无3.2MIF格式与SHP格式内容比较当从SHP转成MIF数据格式时,一个要素类转换为一个图层。SHP数据中要素类的几何类型分点、线、面、注记,分别与MIF格式中定义的“Point”点、“Line”线(及多义线Polyline)、“Region”面和“Text”文本四种类型相对应。3.3两种文件的转换思想首先将转换过程归纳为:读取数据、整合信息和写入文件这三个步骤。以下以SHP文件转换到MIF文件为例进行说明。通过对以上两种数据格式的比较和分析,数据格式的转换就是在保证数据传递的完整性和一致性前提下,读取SHP文件的数据内容,按照MIF文件的数据组织方式,进行相应的重排和输出,即写文件的操作。写文件的操作较简单,即严格按照MIF和MID文件的格式读取数据,依次写入相应的文件。将地理要素的图形信息、参考信息和属性信息分别写入各自的MIF和MID文件。第3页共6页两种格式文件的转换如果是在同一坐标系间进行转换,采取直接转换的方案,如果是不同坐标系间的转换,则采取以下转换模型进行坐标转换,将要素的坐标值转换后,进行整合后写入文件。以下介绍转换软件涉及到的几种转换模型。3.4不同坐标系间的转换模型相似变换模型:相似变换一般包含平移参数、旋转参数和尺度参数。式(1)中,(XiYi)Ⅰ、(XiYi)Ⅱ分别表示i点在坐标系统Ⅰ和坐标系统Ⅱ中的点位坐标,(x0y0)为2个平移参数,α为旋转参数,m为尺度参数。仿射变换模型:其中(s,t)和(x,y)分别为两坐标系下的坐标,a0,a1,a2,b0,b1,b2为转换参数,当公共点大于3个时,采用最小二乘法进行结算。双线性变换转换模型其中(s,t)和(x,y)分别为两坐标系下的坐标,a0,a1,a2,a3,b0,b1,b2,b3为转换参数,当公共点大于4个时,采用最小二乘法进行结算。基于上述转换原理,以VC为平台,设计坐标转换程序。3.5SHP格式与MIF格式坐标转换的程序实现以下是转换软件转换部分具体的代码实现(以SHP文件转换到MIF文件为例):1)读取SHP文件的图形信息SHPHandleshpHandle=SHPOpen(inFile,rb);//infile是图形文件的文件名,读入图形信息;“rb”表示只读2)读取SHP文件的属性信息DBFHandledbfHandle=NULL;dbfHandle=DBFOpen(strTemp,rb);//strTemp是属性文件的文件名,读入属性信息;“rb”表示只读3)打开MIF和MID文件第4页共6页FILE*mifOut,*midOut;if((mifOut=fopen(outFile,wt))==NULL){AfxMessageBox(inFile+文件打开错误。);returnFALSE;}if((midOut=fopen(strTemp,wt))==NULL){AfxMessageBox(strTemp+文件打开错误。);returnFALSE;}4)写MIF文件头,首先要获取最小的xy坐标和最大的xy坐标SHPObject*p;doublex,y,xx,yy;doublex_min,y_min,x_max,y_max;p=SHPReadObject(shpHandle,0);x=p-dfYMin;y=p-dfXMin;Transformula(x,y,x_min,y_min);//最小的x,y转换x=p-dfYMax;y=p-dfXMax;Transformula(x,y,x_max,y_max);//最大的x,y转换//写Mif头,写到CoordSysNonEarthUnitsmBounds(y_min,x_min)(y_max,x_max)WriteMIFHeader(mifOut,y_min,x_min,y_max,x_max);5)写MIF图形信息switch(p-nSHPType){case1://点y=p-padfX[0];//不同坐标系转换前坐标x=p-padfY[0];Transformula(x,y,xx,yy);p-padfX[0]=yy;//不同坐标系转换后坐标p-padfY[0]=xx;break;case3://线for(j=0;jp-nVertices;j++){y=p-padfX[j];x=p-padfY[j];Transformula(x,y,xx,yy);p-padfX[j]=yy;p-padfY[j]=xx;fprintf(mifOut,%.3lf%.3lf\n,yy,xx);}第5页共6页break;case5://面……………………}……………………转换软件界面3.6转换结果分析本实例主要以湖南省华容县的部分数据为例,介绍通过该软件将数据从ShapeFile转换第6页共6页到Mif格式的效果。转换后要素没有发现丢失,转换前后要素数量保持了一致。属性数据也保存完整,经检查,与要素一一对应的关系仍然存在,可以达到预期的效果。4结束语数据格式转换是实现地理数据互操作与共享的有效方法之一。该转换软件的研制能够满足实际工作需要,具有较强的操作性和实用性。该软件通过对两者数据内容对应关系的分析,构建了数据转换的算法并通过VC编程实现,并采用实例数据进行应用验证,证明转换方法是切实可行的。该软件实现的转换效果与MapInfoProfessional软件中SHP文件与MIF文件的转换效果一致,并实现了不同坐标系间的转换,为数据处理与数据整合有着一定的意义。参考文献:[1]dwg航测数据到shapefile数据的转换/2005数字江苏论坛——电子政务与地理信息技术论文专辑;陈再春,张云青,陈青梅;2005[2]坐标相似变换模型的探讨/陈廷武,段红志,朱照荣;北京测绘;2008年第4期[3]地方坐标系与国家坐标系转换方法探讨/韩雪培廖邦固;《测绘通报》;2004年第10期[4]由KIWI数据格式到MapInfo数据格式的转换研究/斌李清泉李汉武张永红;《测绘信息与工程》;2005年第5期[5]地方独立坐标系与1980西安坐标系之间的转换/韩剑虹王振国毛卫民李国凤;《测绘通报》;2008年第3期[6]地方独立坐标系统的建立及其实现/张述清李永云;《测绘工程》;2007年第4期[7]土地利用矢量数据交换文件VCT和Mapinfo数据格式的转换研究与实现/鲍文东邵周岳邹杰;《山东农业大学学报》;2007年第1期
本文标题:MIF数据与SHP数据转换软件的设计与实现
链接地址:https://www.777doc.com/doc-2882825 .html