首页 > 范文大全 > 正文

几种GIS软件线与面要素转换的探讨

开篇:润墨网以专业的文秘视角,为您筛选了一篇几种GIS软件线与面要素转换的探讨范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文阐述了在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所示。

图1 MapInfo中线与面要素转换图示

2.2 MapGIS中的线与面要素的转换

MapGIS软件中数据的组织是以点、线、弧以及区域等形式完成的。为了将线要素转换成面要素,首先应将线要素提取为弧要素,再将闭合的弧段数据提取为区域。而将面要素转换成线要素,从逻辑上来说,则是上述步骤的逆过程。见图2所示。

图2MapGIS中线与面要素转换图示

2.3 ArcGIS中线与面要素的转换

在ArcMap中,尽管没有具体的功能实现线转面、面转线的操作,但却可以使用其它方法将面要素转换成线要素。方法一:可将某个polygon要素中的数据先复制,然后再粘贴到polyline要素中。这种方法虽然可以实现面要素转成线要素,但属性表中的信息不会保存下来,也就是说,这种方法将丢失属性信息。方法二:在高级编辑中,Topology菜单中的Construct Features功能也可以将面要素转换成线要素。

而为了将线要素转成面要素,则需要到ArcCatalog中实现这个功能。首先应将其他格式的数据转换到Geodatabase中一个的要素数据集下;其次,鼠标指向该数据集并右击,选择New中的Polygon Feature Class From Lines…,出现Polygon Feature Class From Lines对话框;最后在该对话框中进行各种相应的设置,选择OK后,就会在该要素数据集中产生一个对应的面要素类。见图3所示。

图3 ArcGIS中线与面要素转换图示

对于线要素和面要素的转换,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.

注:文章内所有公式及图表请用PDF形式查看。