3.2 矢量数据的转换
MapGIS 10支持不同数据源之间的数据迁移,包括MapGISLocal和数据库数据源(Oracle、SQLServer)各种中间件之间的数据迁移、复制与转换,同时能够兼容低版本MapGIS的数据,提供低版本MapGIS数据的升级,以及将MapGIS 10数据转换为低版本MapGIS的数据。另外,MapGIS 10还支持与其他主流GIS常用数据格式的交换。
3.2.1 MapGIS数据转换
1.导入MapGIS 6x数据
操作方法如下:
(1)在“GDBCatalog”目录窗口中,右键单击需要导入数据的文件节点(数据库、空间数据、要素数据集、简单要素类、注记类、对象类、栅格目录、栅格数据集等的右键菜单中都有“导入”项),在弹出的右键菜单中选择“导入→MapGIS 6x数据”,如图3-2所示,可弹出“数据转换”对话框。
图3-2 导入MapGIS 6x数据
(2)添加数据。在“数据转换”对话框中单击“”按钮,选择要转换的MapGIS 6x数据,如图3-3所示。
图3-3 “数据转换”对话框
(3)修改目的数据参数。在“数据转换”对话框中可以修改目的数据类型、目的数据名、目的数据目录、参数。具体设置说明如下:
“目的数据类型”:在将MapGIS 6x数据导入GDB数据库时,系统默认的目的数据类型为简单要素类,单击相应数据的“目的数据类型”可选择修改数据类型,可选类型包括简单要素类、对象类和注记类,如图3-4所示。
“目的数据名”:单击数据的“目的数据名”可以对目的数据的名称进行自定义修改。
“目的数据目录”:单击数据的“目的数据目录”可弹出“浏览文件夹”对话框,在该对话框中可以选择“GDBCatalog”目录窗口中的数据库。
“参数”:单击数据的“参数”中的“”按钮,可弹出“高级参数设置”对话框(见图3-5),通过该对话框不仅可以重新指定导入数据的空间参照系,还可以为数据配置MapGIS 6x的符号库和矢量字库,并且可以选择只导入数据的属性结构而不导入数据实体。
图3-4 目的数据类型
在同时将多条MapGIS 6x数据导入GDB数据库时,可通过单击“”按钮弹出的“修改数据”对话框(见图3-6)来统改参数。
图3-5 “高级参数设置”对话框
图3-6 “修改数据”对话框
(4)其他操作。完成数据的添加和参数的修改后,用户可以进行以下操作:
① 查看日志。单击“数据转换”对话框中的“”按钮,选择“查看日志”项后可查看数据的日志文件。
② 设置参数。单击“数据转换”对话框中“”按钮,出现如图3-7所示的“参数设置”对话框,通过该对话框配置日志文件。
图3-7 “参数设置”对话框
③ 检查错误。单击“数据转换”对话框中的“”按钮,在下拉列表中选择“检查错误”项,可以检查各项数据的转换参数是否合法。若出现不合法的数据,则会在对应数据的“状态”栏中显示“”。数据转换失败的界面如图3-8所示。
图3-8 数据转换失败的界面
④ 自动改错。单击“数据转换”对话框中的“”按钮,在下拉列表中选择“自动改错”项,会弹出如图3-9所示的“除错策略选择”对话框。除错策略主要是对目的数据名称进行一系列的调整和修改,以排除因目的数据名称非法而导致的错误。
在MapGIS类名命名规则中,不得含的特殊字符有“\\”“/”“:”“*”“?”“\”“"”“<”“>”“|”。在Windows文件命名规则中,不得含有“\”“/”“:”“*”“?”“"”“<”“>”“|”。在表格数据命名规则中,Excel表名不超过255个字符,由字母、数字、汉字、下画线、空格组成,首字符不能为空格。Access表名不超过64个字符,表名中不能包含“.”“!”“'”“[”“]”;Foxpro表名不超过128个字符,由字母、汉字、下画线组成。
图3-9 “除错策略选择”对话框
(5)在完成参数设置后,单击“数据转换”对话框中的“转换”按钮,会弹出如图3-10所示的“转换进度”对话框,该对话框可以显示转换进度。
图3-10 “转换进度”对话框
如果“数据转换”对话框中的“状态”栏全部显示“”,则说明数据全部转换完成,如图3-11所示。
图3-11 数据转换成功界面
2.导出MapGIS 6x数据
操作方法如下:
(1)在“GDBCatalog”目录窗口中,右键单击需要导出数据的文件节点(如数据库节点、空间数据、要素数据集、简单要素类、注记类、对象类、栅格目录、栅格数据集等的右键菜单中都有“导出”项),在弹出的右键菜单中选择“导出→MapGIS 6x数据”,如图3-12所示,可弹出“数据转换”对话框。
(2)在弹出的“数据转换”对话框中(见图3-13),默认列出了对应节点下的源数据,并默认目的数据的导出类型为MapGIS 6x数据。
图3-12 导出MapGIS 6x数据
图3-13 “数据转换”对话框
(3)修改目的数据参数。在导出MapGIS 6x数据时,用户可以修改目的数据类型、目的数据名、目的数据目录、参数。详细的修改说明可以参考本节“导入MapGIS 6x数据”中的内容。
(4)完成目的数据的参数设置后,单击“转换”按钮即可执行导出操作。数据转换成功的界面如图3-14所示。
图3-14 数据转换成功的界面
3.MapGIS GDB数据的迁移
MapGIS 10中提供的导入/导出MapGIS GDB数据功能,实际上是MapGIS GDB数据在“GDBCatalog”目录窗口中的数据库之间的迁移。
导入MapGIS GDB数据的操作方法如下:
(1)在需要导入MapGIS GDB数据的数据库相应节点上单击鼠标右键,在弹出的右键菜单中选择“导入→MapGIS GDB数据”,如图3-15所示,此时可弹出“数据转换”对话框。
图3-15 导入MapGIS GDB数据
(2)如果要向所选的数据库中都导入MapGIS GDB数据,那么可以在“数据转换”对话框中单击“”按钮,弹出“添加数据源”对话框,如图3-16所示。在该对话框中可添加数据的目录只是“GDBCatalog”目录窗口中的数据源。
图3-16 “添加源数据”对话框
若是要把所选数据从一个库导出到另一个数据库中,那么在对应的“数据转换”对话框中已经默认列出了源数据库中所包含的数据;也可以单击“”按钮,继续添加需要导入到另一个数据库中的数据。
(3)转换参数的设置。用户可以在“数据转换”对话框中进行目的数据参数的设置,可设置目的数据类型、目的数据名、目的数据目录、参数等。具体的设置过程可参考本节“导入MapGIS 6x数据”中的相关内容。
(4)其他设置。在“数据转换”对话框中还可以进行查看日志、设置参数、检查错误和自动改错等操作。具体操作也可以参考“导入MapGIS 6x数据”中的相关内容。
(5)完成转换参数设置后单击“转换”按钮,即可执行MapGIS GDB数据的迁移操作,转换成功后,在“数据转换”对话框中相应数据的“状态”栏会显示“”,不成功显示“”。
导入MapGIS GDB数据的操作与导出MapGIS 6x数据的操作类似。
3.2.2 表格数据的转换
MapGIS 10支持将其他外部的表格数据(如Excel、TXT、Access及Foxpro等表格数据)导入到MapGIS GDB对象类中。
MapGIS 10可将简单要素类和注记类的属性表、对象类等数据导出为表格数据,既可将这些数据以6x表文件、Excel表格、Access表格、Foxpro表格、TXT表格的格式导出至本地磁盘,也可将这些数据以对象类的格式导出到“GDBCatalog”目录窗口中的“对象类”节点中。
1.导入表格数据的操作说明
(1)在“GDBCatalog”目录窗口中选择需要导入表格数据的节点后单击鼠标右键,在弹出的右键菜单中选择“导入→表格数据”项,如图3-17所示,可弹出“数据转换”对话框。
图3-17 导入表格数据
(2)添加数据。单击“数据转换”对话框中的“”按钮,可添加需要导入的数据。
(3)修改转换参数。添加数据完成后,系统会默认给出目的数据类型、目的数据名、目的数据目录,用户可根据需要修改这三个参数。修改的方式有以下两种:
① 如果需要修改单个数据的参数,则只需要单击数据的相应参数名来完成修改。
② 如果需要批量修改数据的参数,则可以借助全选或反选功能来选择需要修改的数据,再单击“修改”按钮,在弹出的“修改数据”对话框(见图3-18)中勾选需要修改的项,单击“确定”按钮即可进行参数的统改。
图3-18 “修改数据”对话框
在“修改数据”对话框中,用户能够对数据进行统改的项包括:
在“统改目的数据名称”栏中,先给目的数据加上统一的前缀或后缀,再去除相同的前字符数或后字符数,即可实现对目的数据名称的统改。这种方式可避免出现不合法名称。
在“统改目的数据类型”栏中,可通过“统改类型”下拉列表选择目的数据的转换类型。
在“统改MapGIS目的数据目录”栏中,可将目的数据目录统改为“GDBCatalog”目录窗口的数据库位置。
在“统改Windows目的数据目录”栏中,可将目的数据目录统改为本地磁盘文件夹位置。
完成参数的修改后即可进行数据有效性的检查和修改。
(4)高级参数设置。完成目的数据目录的设置后,单击数据列表中“参数”项的“”按钮,MapGIS 10可根据不同的源数据类型和目的数据类型弹出不同的“高级参数设置”对话框。用户可根据对数据的需求设置数据高级参数,以提高数据转换的质量。
以导出为Excel表格为例,单击“”按钮后可弹出“字段设置”对话框,如图3-19所示。用户可以在该对话框中选择需要导入的字段,修改目的字段名和目的类型,以及使用的除错策略等。
图3-19 “字段设置”对话框
(5)完成数据转换。确定添加的数据正确之后,单击“数据转换”对话框中的“转换”按钮可弹出“转换进度”对话框。在“转换进度”对话框中可以查看转换进度和转换日志,单击“完成”按钮可关闭“转换进度”对话框,完成表格数据的导入。
2.导出表格数据的操作说明
(1)在“GDBCatalog”目录窗口中选择并右键单击需要导出表格数据的节点,在弹出的右键菜单中选择“导出→表格数据”,如图3-20所示,可弹出“数据转换”对话框。
图3-20 导出表格数据
(2)在“数据转换”对话框(见图3-21)中默认列出了对应数据库节点下所包含的全部对象类、简单要素类、注记类,并且默认导出类型为Excel表格。
图3-21 “数据转换”对话框
(3)转换参数设置。用户可以在“数据转换”对话框中设置目的数据类型、目的数据名、目的数据目录、参数等,具体的设置方法可参考3.2.1节中“导入MapGIS 6x数据”中的内容。
(4)其他设置。用户还可以进行配置日志文件、进行数据检查和自动改错的操作,具体操作也可以参考3.2.1节“导入MapGIS 6x数据”中的内容。
(5)完成转换参数的设置后,单击“数据转换”对话框中的“转换”按钮即可执行MapGIS数据到表格数据转换的操作。数据转换成功的结果如图3-22所示。
图3-22 数据转换成功的结果
3.2.3 其他数据转换
MapGIS 10还可以将文本文件(*.txt)、MapInfo文件(*.mif)、ArcInfo文件(*.e00)、ArcGIS Shape文件(*.shp)、AutoCAD DXF文件(*.dxf)、AutoCAD DWG文件(*.dwg)、标准矢量数据交换格式文件(*.vct)、MicroStation DGN文件(*.dgn)、OpenGIS GML文件(*.gml)、OpenGIS KML文件(*.kml)这10种常用的GIS格式数据导入为MapGIS数据。
在导出数据时,不仅可将MapGIS数据导出成上述的10种格式的数据,还可以将MapGIS数据导出为6x表文件、Excel表格、Access表格、Foxpro表格、TXT表格等表格数据。
1.导入其他数据的操作说明
(1)右键单击“GDBCatalog”目录窗口中其他格式数据文件节点,在弹出的右键菜单中选择“导入→其他数据”项(见图3-23),可弹出“数据转换”对话框(见图3-24)。
图3-23 导入其他数据
图3-24 “数据转换”对话框
(2)在“数据转换”对话框中单击“”按钮,可以添加本地磁盘中保存的其他格式的源数据,如图3-25所示。
图3-25 添加其他格式的源数据
图3-26中添加了.dwg、.dxf、.e00、.mif和.shp格式的数据。
图3-26 添加其他格式源数据的结果
(3)修改目的数据参数。用户可以在“数据转换”对话框中修改目的数据名、目的数据目录和参数等,具体的修改方法可以参考3.2.1节“导入MapGIS 6x数据”中的内容。
(4)其他操作。为了使导入的数据更加准确和完整,通过“”按钮可以为导入数据配置日志,具体的操作方法也可以参考3.2.1节“导入MapGIS 6x数据”中的内容。
(5)完成导入设置后单击“转换”按钮,可弹出“转换进度”对话框,数据转换成功后,“状态”栏中显示“”,如图3-27所示。
图3-27 数据转换成功的界面
需要注意的是,在导入以下几种格式的数据时,“高级参数设置”或“参数设置”对话框中的选项并不相同,其中:
① 在导入.dgn、.e00、.gml、.kml、.shp、.vct等格式的数据时,单击“参数”栏中的“”按钮后,弹出的对话框如图3-28所示,在该对话框中可以设置是否保留空数据。
图3-28 在导入.dgn、.e00、.gml、.kml、.shp和.vct等格式的数据时对应的“高级参数设置”对话框
② 在导入.mif格式的数据时,对应的对话框如图3-29所示,该对话框已默认选择了符号对照表,同样也可以设置是否勾选“保留空数据”。
③ 在导入.dwg和.dxf格式的数据时,对应的对话框如图3.30所示,可以在该对话框中设置是否勾选“CAD块映射为子图”“要素分层输出”,并更改数据的符号对照表。
图3-29 在导入.mif格式的数据时对应的“高级参数设置”对话框
图3-30 在导入.dwg和.dxf格式的数据时对应的“高级参数设置”对话框
“符号对照表选项”用于设置当.dwg和.dxf格式的数据导入到MapGIS 10中时所对应的符号库,可根据符号对照表参考模板来创建与编辑符号对照表。
④ 在导入.txt格式的数据时,“参数设置”对话框如图3-31所示。
图3-31 在导入.txt格式的数据时对应的“参数设置”对话框
“参数设置”对话框中的主要选项说明如下。
在“数据预览”栏中,“坐标起始行”用于设置从文本文件数据中的哪一行开始导入,即“横坐标”“纵坐标”,才能取得正确的值。
在“生成参数”栏中,可以设置即将导入的文本文件是点数据还是线数据。需要注意的是,若文本文件是线数据,则选择“生成线”,默认两条线之间的分隔符为分号,其他分隔符可在文本框中输入。
在“坐标”栏中,可以设置读取文本文件时,X、Y分别位于哪一列。
在“列分割符号”栏中,可以设置分割符号,可以选择文本文件中对应的分割符号,默认为逗号。若文本文件中有其他分隔符,则可选择其他分隔符。若勾选“连续分割符号每个都参与分割”,则所选的每个分隔符都会参与分隔。
在“图形参数及属性结构”栏中,可以设置导入后数据的图形参数和属性结构。单击“图形参数”按钮可进行图形参数的设置,例如点参数设置如图3-32所示。单击“属性结构”按钮可弹出如图3-33所示的“设置属性结构”对话框。
图3-32 点参数设置
图3-33 “设置属性结构”对话框
在“投影变换”栏中,可以设置用户参照系和目的参照系,如图3-34所示,具体的投影变换方法将在14.3节中讲解。若勾选“投影变换”,则在导入数据时会将数据投影到其他坐标系中。
2.导出其他数据的操作说明
(1)右键单击要导出MapGIS数据为其他数据的节点,在弹出的右键菜单中选择“导出→其他数据”,如图3-35所示,可弹出“数据转换”对话框,如图3-36所示。
图3-34 投影变换设置
图3-35 导出其他数据
(2)在“数据转换”对话框中,系统默认将相应的GDBCatalog下的简单要素类和注记类列出在转换列表中。系统默认将简单要素类转换为Shape文件(.shp文件),将注记类转换为Mif文件(.mif文件)。
(3)修改目的数据参数。用户可以在“数据转换”对话框中修改目的数据类型、目的数据名、目的数据目录、参数等。当修改单条数据时,单击数据要修改项所对应的名称就可以进行修改;当修改多条数据时,可以在单击“”按钮弹出的“修改数据”对话框中进行多条数据的统一修改,即统改参数。
图3-36 “数据转换”对话框
① 在导出为6x数据时,单击“”按钮可弹出如图3-37所示的对话框,在该对话框中可以设置导出后的空间参照系,以及INT64字段类型的处理方式。
② 在导出为.dwg和.dxf格式的数据时,单击“”按钮可弹出如图3-38所示的对话框,在该对话框中可以设置AutoCAD版本和符号对照表。
图3-37 在导出为6x数据时对应的“高级参数设置”对话框
图3-38 在导出为.dwg和.dxf格式的数据时对应的“高级参数设置”对话框