File type transform between ArcGIS and other major type
有一个非常好的工具,FME,本人使用的是FME Suit 2002 版本。可以进行大量的各种GIS数据格式的转换。可以先使用FME准备好FME的Workbench文件,然后在程序中通过命令行的方式进行调用。例如:
Dim str As String
str = "FME D:\Data\test_shape.fmw"
Dim X As Long
X = Shell(str, vbNormalFocus)
While IsRunning(X)
DoEvents
Wend
二、ARC/INFO与AutoCAD之间的数据转换
美国AutoDESK公司研制的AutoCAD。ARC/INFO为与AutoCAD进行数据转换提供了一个良好的接口。
1.AutoCAD-->>ARC/INFO
将一个AutoCAD的图形(Drawing)转换成ARC/INFO的层(Coverage),首先需要在AutoCAD中输出交换文件:DXF文件。在把DXF文件转换成ARC/INFO 数据之前,ARC/INFO提供了查看DXF文件的工具命令:DXF、DXFINFO。其中DXF是ARCPLOT模块中的命令,它可以用最接近原图的符号特征来显示DXF文件;DXFINFO命令会列出原始AutoCAD图形包含的内容,如:
Arc: DXFINFO TEST.DXF
TEXT DEF DEFAULT
LAYER NAME ARCS POINTS TEXT ATTRIB INSERT LEN COLOR LINETYPE
---------- ---- ------ ---- ------ ------ ---- ----- ---------
A123 4 0 0 0 0 0 7 CONTINUOUS
LOTS 13 2 5 0 0 32 14 CONTINUOUS
DATA 0 0 0 2 1 5 6 CONTINUOUS
HIDE 1 0 0 0 0 0 -1 DASHED
---------- ---- ------ ---- ------ ------ ----
ALL LAYERS 18 2 5 2 1 32
ARC/INFO用DXFARC命令来转换DXF文件,下面是DXFARC命令的用法:
Arc: DXFARC
Usage: DXFARC <in_dxf_file> <out_cover> {text_width} {attrib_width}
转换前后各种图形实体的对比如下表:
(没有图片)
<![endif]>
ARC/INFO把DXF文件中的每一线(Line)实体的Layer、线型、颜色等属性(信息)存放在后缀为“ACODE”的INFO文件中;把DXF文件中的每一点(Point)实体、注记(Text)实体、Insert实体的Layer、颜色、角度、尺寸、注记字符串等属性(信息)存放在后缀为“XCODE”的INFO文件中。
2.ARC/INFO-->>AutoCAD
ARC/INFO用ARCDXF命令把层转换成为DXF文件,从而可以用AutoCAD打开。ARCDXF命令用法如下:
Arc: ARCDXF
Usage ARCDXF <out_dxf_file> {in_line_cover} {in_point_cover}
{in_annotation_cover} {decimal_places}{ASCII | BINARY}
转换前后各种实体对比如下表: <![endif]>
DXF文件中的实体的Layer、颜色、类型等属性(信息)来源于两种途径:层的属性表AAT表和PAT表;后缀为“XOCDE”和“ACODE”的INFO表。上述的各表均是DBF类型的数据库文件,若想成为DXF文件属性(信息)来源,必须具有标准的DXF项。标准的DXF项如下表:
三、ARC/INFO与MicroStation之间的数据交换
MicroStation是一个在工程、绘图、建筑等领域广泛使用的CAD软件包,它的设计(design)文件后缀为“dgn”。ARC/INFO提供了与“dgn”文件相互转换的功能。
1. MicroStation-->>ARC/INFO
MicroStation的设计(design)文件中可以存在127种要素类型,但ARC/INFO只能转换其中常用的11种:Cell、Line、Line string、Shape、Text node、Curve、Complex string、Complex shape、Ellipse、Arc、Text。在转换“dgn”文件之前,可以在ARC/INFO中用IGDSINFO命令便捷地查看“dgn”文件所包含的大概内容,然后用IGDSARC命令进行转换。IGDSARC命令用法如下:
Arc: IGDSARC
Usage: IGDSARC <in_igds_file> <out_cover> {2D | 3D} {xmin}
{ymin} {xmax} {ymax} {OVERLAP | INSIDE}
“dgn”文件的所有要素的Layer、颜色、类型等属性(信息)都存放在后缀为“ACODE”的INFO表中。MicroStation的每一个要素的属性(信息)可以通过联接(linkage)方式存放在外部的数据库中,如:Oracle、INFORMIX、Xbase、RIS等,ARC/INFO可以保持并转换这些联接,转换后的层的要素通过Cover_id来与属性(信息)一一对应。
2. ARC/INFO-->>MicroStation
ARC/INFO使用ARCIGDS命令将层转换成MicroStation的“dgn”文件,ARCIGDS命令的用法如下:
Arc: ARCIGDS
Usage: ARCIGDS <in_cover> <out_igds_file> <COMPLEX | NOCOMPLEX> <VANILLA | ACODE | SOURCE > <in_igds_seed_dgn> {2D | 3D} {in_cell_library} {in_property_map} {in_features}
{out_elements}
“dgn”文件中的要素的Layer、颜色、类型等属性(信息)来源于后缀为“ACODE”的INFO表,ARC/INFO也可以重新构造或生成联接,从而建立“dgn”文件存放于外部数据库的属性(信息)。
四、ARC/INFO与MapInfo之间的数据交换
MapInfo是著名的桌面地图信息系统应用软件,它提供了一个用MapBasic(在MapInfo平台上开发用户定制的应用程序的编程语言)开发的、用于与ARC/INFO进行数据转换的工具,名为ArcLink。E00文件是ARC/INFO的交换文件,ArcLink可以转入或转出EOO文件。
1.ARC/INFO-->>MapInfo
在MapInfo环境中运行ArcLink后,选中“ARC/INFO->MapInfo”项,会弹出如下对话框
<![endif]>
ArcLink会根据选定的ARC/INFO E00数据的拓扑关系,让用户决定转换那些类型的要素,如:Arcs、Polygons、Points、Annotationd等,并且根据类型把要素从E00数据中挑选出来转换成多个的MapInfo的Table数据。值得注意的是,构成ARC/INFO的Polygon的Arc,经ArcLink转换后,会存放于Line的Table和Poly的Table。ArcLink生成的Table的结构和属性数据来源于ARC/INFO数据的属性表(AAT表和PAT表)。
2.MapInfo-->>ARC/INFO
在MapInfo环境中运行ArcLink后,选中“MapInfo-> ARC/INFO”项,会弹出如下对话框:
ArcLink根据选定的Table,分析Table中的要素类型,列出能够转换成ARC/INFO数据的要素类型让用户选择,然后输出ARC/INFO的E00交换文件。需要注意的是,当用户决定把某个Table转换成ARC/INFO数据,这个Table中Polygon要素和Point要素不能同时存在,因为在ARC/INFO中,一个层的面拓扑和点拓扑不能同时建立。