来源:期刊VIP网所属分类:软件开发发布时间:2012-09-28浏览:次
摘要:本文阐述了在MapInfo 7.0、MapGIS 6.5、ArcGIS 9.2以及ArcView 3.x四个软件中线与面要素类型转换的实现方法。
关键词:GIS;线要素;面要素;要素转换
Abstract: this paper introduces the MapInfo 7.0, MapGIS 6.5, ArcGIS 9.2 and ArcView 3. X four software midline and face elements type conversion method.
Keywords: GIS; Line elements; Surface elements; Elements conversion
中图分类号: TP311.5 文献标识码:A 文章编号:
0 引言
自从加拿大学者Roger F. Tomlinson首次提出了地理信息系统以来,地理信息系统如雨后春笋般迅速发展并壮大起来,与之相对应的是各种GIS软件应运而生,国外以ESRI公司的ARC/INFO和ArcView、MapInfo公司的MapInfo等软件为代表,而国内此类软件有武汉中地公司的MapGIS等。尽管各软件的功能很强大,但在实际运用中,结合各应用领域的具体情况,每种软件都有其各自的优势。下面针对不同的软件,进一步探讨线与面要素间的转换功能。
1 线与面要素互转的意义
在GIS软件中,线要素和面要素数据都是分开存储的。线要素类中不允许存放面要素数据,面要素类中也不可能存放线要素数据。同时,在许多实际情况下,我们获得的数据信息可能只是线要素,也可能仅仅为面要素;而在GIS软件中的一些分析和操作功能,以及显示输出时却需要它们互转后的数据信息。
以境界数据为例,很多情况下,使用单位所获取的此类信息都是以线要素的形式存储的,这种形式的数据远远不能满足实际的需要。比如,用此线要素数据制作行政区划图时,就需要先将线要素转换成面要素数据,再进行一些诸如颜色、比例尺等因素的调整。有时,某一大区域所拥有的数据量很大,给显示和分析带来了极大的不便,此时就需要根据一定的规则和实际情况将这个区域进行分割,得到一系列符合要求的小区域。很多软件都提供了相应的功能,即用面数据去对大区域进行切割处理,此时也需要面要素数据的支持。
下面分别以MapInfo 7.0、MapGIS 6.5、ArcGIS 9.2以及ArcView 3.x等软件为例,阐述线与面要素数据的转换是如何在各软件中实现的。
2 几种常用GIS软件中线与面转换功能的具体实现方法
在上述的几种软件中,线与面要素转换的具体实现方法各有优劣。现以抚顺市新宾县的一个镇的境界线数据为例,分述如下:
2.1 MapInfo中线与面要素的转换
MapInfo软件虽然空间分析功能远远赶不上ESRI公司的系列产品,但其图形编辑功能却有其独特的优势。通常,人们对扫描的图形进行矢量化操作都在该软件中进行。在MapInfo中的编辑功能中,提供了两种功能:“convert to Regions”和“convert to Polylines”,这两个功能可以将线要素转成面要素,也可以将面要素转成线要素。见图1所示。
2.2 MapGIS中的线与面要素的转换
MapGIS软件中数据的组织是以点、线、弧以及区域等形式完成的。为了将线要素转换成面要素,首先应将线要素提取为弧要素,再将闭合的弧段数据提取为区域。而将面要素转换成线要素,从逻辑上来说,则是上述步骤的逆过程。见图2所示。
2.3 ArcGIS中线与面要素的转换
在ArcMap中,尽管没有具体的功能实现线转面、面转线的操作,但却可以使用其它方法将面要素转换成线要素。方法一:可将某个polygon要素中的数据先复制,然后再粘贴到polyline要素中。这种方法虽然可以实现面要素转成线要素,但属性表中的信息不会保存下来,也就是说,这种方法将丢失属性信息。方法二:在高级编辑中,Topology菜单中的Construct Features功能也可以将面要素转换成线要素。
而为了将线要素转成面要素,则需要到ArcCatalog中实现这个功能。首先应将其他格式的数据转换到Geodatabase中一个的要素数据集下;其次,鼠标指向该数据集并右击,选择New中的Polygon Feature Class From Lines…,出现Polygon Feature Class From Lines对话框;最后在该对话框中进行各种相应的设置,选择OK后,就会在该要素数据集中产生一个对应的面要素类。见图3所示。
对于线要素和面要素的转换,ArcGIS的ArcToolbox中将会提供专门的命令实现这个功能,大大地提高了数据操作的速度和精度。
2.4 ArcView中线与面要素的转换
尽管在ArcView中没有直接的功能对线、面要素进行互转,但却可以在scripts中使用Avenue语言实现这些功能,不仅可以实现对线、面要素的互转,而且也可以实现点、线、面三类要素数据的互转。
如果仅仅是一些简单对象类型之间的互转,则可以使用表达式实现三种不同数据类型的转换,如aObject.AsMultiPoint、aObject.AsPolygon、aObject.AsPolyLine等。若转换的数据量大且等级高,则需要在scripts文档中使用完整的Avenue语言去实现它。下面是将当前面要素层转换成线要素的一部分脚本:
theView = av.GetActiveDoc
theThemeIn = theView.GetActiveThemes.Get(0)
fnDefault = FileName.Make("$HOME").MakeTmp("shape","shp")
fnOutput = FileDialog.Put( fnDefault,"*.shp","Output Shape File" )
if (fnOutput = nil) then exit end
fnOutput.SetExtension("shp")
ftbOutput = FTab.MakeNew( fnOutput, POLYLINE )
ftbOutput.AddFields({Field.Make("ID", #FIELD_LONG, 8, 0)})
3 结论
结合以上几种软件,通过对线与面要素转换功能的研究,可以看出:尽管MapInfo在线与面要素数据的转换方法上相对简单,但点、线和面三种类型数据可存放在同一数据层中,不利于数据的分析和管理,且线与面要素数据转换的方法仅针对数据层中的具体要素而言,无法实现数据层级别上的线与面要素数据的转换。因此,对于大量的要素层数据,如果要进行线与面要素的转换,则最好使用ESRI公司的ArcGIS 和ArcView等系列软件。
参考文献:
[1] 陈述彭, 鲁学军, 周成虎. 地理信息系统导论. 北京:科学出版社, 2002.
[2] 罗云启, 罗毅. 数字化地理信息系统MapInfo应用大全. 北京:北京希望电子出版社, 2001.
[3]秦其明, 曹五丰, 陈杉. ArcView地理信息系统实用教程. 北京:北京大学出版社, 2000.
期刊VIP网,您身边的高端学术顾问
文章名称: 几种GIS软件线与面要素转换的探讨
文章地址: http://www.qikanvip.com/ruanjiankaifa/4674.html