# 二维矢量数据

MapGIS 二维矢量数据包括矢量点/线/区/注记,在MapGIS GDB中涉及到了要素数据集、简单要素类和注记类三个节点。本章节主要讲解了第三方格式与MapGIS GDB中矢量数据间相互转换。

# 相关主题

# ArcGIS File GDB/ArcGIS Personal GDB

# 功能说明

配置“ArcGIS FileGDB/PersonalGDB中间件”后,MapGIS可直接读取ArcGIS File GDB数据和ArcGIS Personal GDB数据。同时,可通过数据导入/导出功能,实现MapGIS数据与ArcGIS File GDB/ArcGIS Personal GDB间的互转。

目前ArcGIS File GDB/ArcGIS Personal GDB数据的导入,仅可通过“数据库/空间数据”节点的“导入其他数据”->“ArcGIS File GDB/ArcGIS Personal GDB”导入。

提示:

ArcGIS File GDB/ArcGIS Personal GDB与MapGIS GDB数据间互转,目前仅支持要素数据集、简单要素类和注记类。

# 操作说明

(一)数据导入

1. 在“数据库”或“空间数据”节点,导入“其他数据”,可选择ArcGIS File GDB或ArcGIS Personal GDB;

2. 添加数据后,界面其他参数设置可参考“导入MapGIS 6x数据”;

提示:

此处目的数据名是目标MapGIS GDB数据库名称,不可修改。

3. 点击"转换",可将整个ArcGIS File GDB或ArcGIS Personal GDB导入到MapGIS GDB中。

(二)数据导出

1. 在“数据库”或“空间数据”节点,右键“导出”->“导出ArcGIS File GDB”或“导出ArcGIS Personal GDB”,弹出如下所示对话框:

2. 设置目的数据名及结果路径,界面其他参数设置可参考“导入MapGIS 6x数据”;

3. 点击"转换",可将整个数据库导出为ArcGIS File GDB或ArcGIS Personal GDB。

# Coverage数据

# 功能说明

Coverage是一种用于存储矢量数据的地理相关数据模型,它包含地理要素的空间位置数据和属性数据。Coverage 使用一组要素类来表示地理要素。 每个要素类存储一组点、线、区或注记。

MapGIS可支持将Coverage数据导入为MapGIS的要素数据集。

# 操作说明

1. 在“数据库”或“空间数据”节点,导入“其他数据”,可选择“Coverage文件”;

2. 添加数据后,界面其他参数设置可参考“导入MapGIS 6x数据”;

3. 点击"转换",可将Coverage数据导入为MapGIS的要素数据集。

# Shapefile、mif、e00、GML、Json、GeoJson数据

# 功能说明

MapGIS可支持将*.shp、*.mif、*.e00、*.gml、*.kml、*.json、*.geojson等数据与MapGIS的矢量点/线/区互转。

  • shapefile 是一种矢量数据存储格式,用于存储具有相同几何类型(例如点、线和面)和相同空间参考的地理要素的位置、形状和属性。

  • mif是Mapinfo用来向外交换数据的一种中间交换文件。

  • e00是 ESRI ArcInfo 交换文件,是 ESRI 的专有文件格式。

  • GML是一种用可扩展标记语言(XML)编写地理信息的方式,以方便地理信息的传输和存储。

  • KML是一种基于 XML 的文件格式,用于显示地理环境中的信息。

# 操作说明

*.shp、*.mif、*.e00、*.gml、*.kml、*.json、*.geojson等数据的操作基本一致,下面以shp数据为例进行讲解。

(一)数据导入

1. 启动导入“其他数据”,弹出如下所示的数据转换对话框:

2. 点击【添加】,可选择本地*.shp文件,界面其他参数设置可参考“导入MapGIS 6x数据”;

3. 点击数据后的【参数】,可进行高级选项设置:

  • 【保留空数据】:默认不勾选,若数据的图元个数为0时,会删除该空数据;勾选时,可保留空数据;
  • 【统改同类型转换项】:勾选时,可同步修改数据转换列表中所有数据的高级参数。

4. 点击"转换",可将*.shp文件导入到MapGIS GDB中。

(二)数据导出

1. 启动导出“其他数据”,弹出如下所示的数据转换对话框:

2. 选择目的数据类型为“shape文件”,界面其他参数设置可参考“导入MapGIS 6x数据”;

3. 点击数据后的【参数】,可进行高级选项设置:

  • 【编码格式】:设置结果shp数据的编码格式;
  • 【导出带z坐标的shp文件】:勾选时,若源矢量数据带z坐标,可将z坐标导出到shp中;
  • 【统改同类型转换项】:勾选时,可同步修改数据转换列表中所有数据的高级参数。

4. 点击"转换",可将矢量点/线/区导出为本地*.shp文件。

# Csv数据

# 功能说明

MapGIS可支持*.csv文本与MapGIS的矢量点/线/区互转。

提示:

导入*.csv文件时,只能导入为矢量点/线。若希望生成区,需先导入为矢量线,再通过“线拓扑造区”功能生成矢量区。

# 操作说明

(一)数据导入

1. 启动导入“其他数据”,弹出如下所示的数据转换对话框:

2. 点击【添加】,可选择本地*.csv文件,界面其他参数设置可参考“导入MapGIS 6x数据”;

提示:

csv数据转换时目的数据名是目标MapGIS GDB数据库名称,不可修改。

3. 点击数据后的【参数】,可进行高级选项设置:

  • 【属性结构行】:设置属性名称所在行;
  • 【数据起始行】:数据起始的行;
  • 【列分隔符号】:每一列的分割符号;
  • 【坐标】:可通过“坐标字段”和WKT串字段两种方式来读取X/Y坐标值;
    • 【坐标字段】:通过指定X/Y坐标所在列,来制定坐标值;
    • 【WKT串字段】:当坐标值记录在WKT串字段中时,可通过指定该字段的行来读取X/Y坐标值。
  • 【编码格式】:设置原始*.csv数据存储的编码格式,如果设置错误可能导致乱码;
  • 【目的参考系】:勾选后,可设置目标数据的空间参照系;
  • 【设置作为图元属性的列及结构】:选择部分或所有列作为属性,并可设置属性字段的类型。

4. 点击"转换",可将*.csv文件导入到MapGIS GDB中,MapGIS会根据坐标值自动识别转换为矢量点或线。

(二)数据导出

1. 启动导出“其他数据”,弹出如下所示的数据转换对话框:

2. 界面其他参数设置可参考“导入MapGIS 6x数据”;

3. 点击数据后的【参数】,可进行高级选项设置:

  • 【导出点坐标数据以WKT串表示】:导出点数据时,默认不勾选,X/Y坐标会导出为两列;勾选时,X/Y坐标会通过WKT串表示。

4. 点击"转换",可将矢量点/线/区导出为本地*.cxv文件。

# Txt数据

# 功能说明

MapGIS可支持将*.txt文本数据导入为MapGIS的矢量点/线,但对*.txt的数据格式有所要求,具体可参考数据导入时的示例点/线文件。

# 操作说明

(一)数据导入

导入*.txt数据时,其操作步骤同“shp数据”,下面只对数据转换的参数设置进行说明。导入*.txt数据时,其高级参数设置界面如下所示:

  • 【数据预览】:显示通过当前参数设置,*.txx文本的数据显示效果。
    • 【编码格式】:*.txt文本的编码格式,若设置错误,可能导致属性值乱码;
    • 【数据开始行】:设置文本数据中,坐标从哪一行开始导入。根据“数据开始行”以及【坐标】中设置的XY位于列数,决定数据开始行的横纵坐标。
  • 【生成参数】:根据TXT文本本身数据类型决定生成的简单要素类是点简单要素类还是线简单要素类。
    • 【生成点】:TXT文件为点要素时勾选;
    • 【按维读取】:根据TXT文件点坐标的维度进行设置,如TXT文本为二维点数据,则设置“按维读取”为2;
    • 【生成线】:TXT文件为线要素时勾选;
    • 【图元分隔符】:默认两条线之间的分隔符为分号,若有其他分隔符,可在文本框中输入;
  • 【坐标】:设置读取TXT文本文件时,X/Y/Z坐标分别位于哪一列。
    • 【X/Y/Z】:设置X/Y/Z坐标所处的列;
    • 【保留单列/忽略单列】对于某一行数据缺少一列时,即缺少X或Y值,默认勾选“保留单列”会依旧导入这一行,缺失的坐标值默认为0。反之,勾选“忽略单列”时,这一行数据会作为无效数据忽略掉;
    • 【导入z坐标】当读取维度为3时,勾选“导入z坐标”,可设置Z值所在列。
  • 【列分隔符号】:您可以选择文本中对应的分隔符号。默认为逗号,若文件中有其他分隔符可选择其他分隔符。勾选“连续分隔符号每个都参与分隔”,则所选的每个分隔符都参与分隔;
  • 【图形参数】:点击按钮即可进行导入的点、线图形的参数信息设置;
  • 【属性结构】:点击按钮即可进行属性结构设置,如下:

  • 【属性名称所在行】:选择您希望随图形信息一起导入到MapGIS中的属性字段。需要注意的是,每个导入字段的数据类型要与源数据中属性字段类型一致才能正确导入属性值。
    • 【图元属性位置】:选择图元属性在坐标点后还是在坐标点前。
    • 【投影变换】:若启用投影变换,则在导入时将数据投影到其他坐标系中,设置“用户参照系”和“目的参照系”即可完成投影变换。

下面分别以点图层、线图层为例,分析说明TXT文本文件的导入:

a、点图层

下图为一个本身为点图层的TXT文本文件,数据共9列,其中前三列为点的X/Y/Z坐标,后七列为点图层的属性,列之间用逗号隔开,且数据第一行为属性字段名称。

按照“导入其他数据”流程,将TXT进行导入,在参数设置中设置如下:

  • 生成点图层,数据从第二行开始,且X位于第一列,Y位于第二列,Z位于第三列,列用逗号分隔;
  • 设置属性结构如下,属性名称位于第一行,只保留后7列作为属性值;
  • 本次示例中其他参数默认即可。

b、线图层

下图为一个本身为线图层的TXT文本文件,其中第一行为属性字段名称,其余内容均为线段的信息。线段之间用分号隔开,每一个线段有两个信息,一个是线段中每个点的X/Y/Z坐标,以及每一个线段的属性值,属性值为一行,线段点坐标为多行(一个线由几个点构成,则有几行点坐标),同时,图元属性位于坐标点后。

按照“导入其他数据”流程,将TXT进行导入,在参数设置中设置如下:

  • 生成线图层,线图元用分号隔开;
  • 数据从第三行开始,且X位于第一列,Y位于第二列,列用逗号分隔;
  • 设置属性结构如下,属性名称位于第一行,图元属性包括UserID、高度、aaa、高程值;
  • 图元属性位置设置为“图元属性在坐标点后”;
  • 本次示例中其他参数默认即可。

(二)数据导出

导出*.txt数据时,其操作步骤同“shp数据”,下面只对数据转换的参数设置进行说明。导出*.txt数据时,其高级参数设置界面如下所示:

  • 【导出带z坐标的txt文件】:勾选时,导出时可导出z坐标。

# Dxf/Dwg数据

# 功能说明

MapGIS可支持Dxf/Dwg数据与MapGIS的矢量点/线/区/注记互转。

提示:

Dxf/Dwg数据中可能同时包含点/线/区/注记,导入到MapGIS中后,会变为四个图层。将MapGIS矢量点/线/区/注记导出为Dxf/Dwg数据时,只能导出为多个Dxf/Dwg。

# 操作说明

导入Dxf/Dwg数据时,其操作步骤同“shp数据”,下面只对数据转换的参数设置进行说明。导入Dxf/Dwg数据时,其高级参数设置界面如下所示:

  • 【CAD块映射为子图】:则会将一个块参照文件转换为MapGIS的一个子图;
  • 【要素分层输出】:导入数据时,默认分别导入为一个点/线/区图层中。勾选此项,可按照Dxf/Dwg数据的分层存储关系,导出到多个点/线/区图层中;
  • 【导入不可见图层】:Dxf/Dwg数据中,部分几何要素被标识为不可见,默认情况下,还是会导入这些几何要素。不勾选此项,可不导入这些几何要素;
  • 【符号对照表】:Dxf/Dwg数据在CAD中符号与MapGIS符号库的一一对应关系,具体格式信息可参考“CAD导入/导出配置文件说明”;
  • 【符号对照表参考模板】:符号对照表参照模板存放位置,用户可参考此模板,编辑符号对照表。

# CAD导入/导出配置文件说明

在MapGIS和AutoCAD中,均可将矢量数据进行符号化显示。在MapGIS中,矢量数据可关联某一个系统库,矢量数据中记录了每一个矢量图元对应的系统库中符号、颜色、字体的ID值,从而可以符号化显示矢量符号。在AutoCAD中,矢量数据也是通过关联样式、颜色等信息进行符号化显示。

MapGIS在进行dxf/dwg数据导入/导出时,默认只会导出几何图形和属性信息,需借助配置文件,实现符号样式信息互转。

下面以CAD导出配置文件为例,对文件内容进行说明,导入配置文件使用方法基本相同。“CAD导出示例配置文件.xml”内容如下:

其中,前三行为配置文件说明信息,可直接使用不进行任何修改:

(1)层转换信息

在MapGIS中,矢量点线区包含默认属性字段“mplayer”,该字段可用于记录数据的分层信息;在AutoCAD中,可根据数据类别进行分层管理,实现一类一层。

在CAD导出配置文件中,<LayerMap>部分信息记录了MapGIS和CAD的层转换关系。如下图所示:

其中,在MapGIS中,数据的“mplayer”属性字段的值为1~8。导出为dxf/dwg数据后,数据包括“控制测量点”、“水系”、“居民地与建(构)筑物”、“交通”、“管线及附属设施”、“境界”、“地貌”和“植被与土质”八个层次。在MapGIS中,“mplayer”值为“1”的矢量图元全部导入到“控制测量点”层,“mplayer”值为“2”的矢量图元全部导入到“水系”层,依次类推。

(2)点样式

在MapGIS矢量数据中,矢量点数据是通过关联系统库中某一个“子图号”来进行符号化显示;在dxf/dwg数据中,矢量点通过“块”来进行符号化显示。

在CAD导出配置文件中,<PointStyleMap>部分信息记录了MapGIS和CAD的点符号转换关系。如下图所示:

其中,在MapGIS中,矢量点的参数信息中“子图号”为“1”的点图元导出为dxf/dwg数据后,在CAD中采用“110200”“块”显示。在MapGIS中,矢量点的参数信息中“子图号”为“5”的点图元导出为dxf/dwg数据后,在CAD中采用“110103” “块”显示。依次类推。

(3)线样式

在MapGIS矢量数据中,矢量线数据是通过关联系统库中某一个“线型号”来进行符号化显示;在dxf/dwg数据中,矢量线通过“线型”来进行符号化显示。

在CAD导出配置文件中,<LineStyleMap>部分信息记录了MapGIS和CAD的线符号转换关系。如下图所示:

其中,在MapGIS中,矢量线的参数信息中“线型号”为“8-0”的线图元导出为dxf/dwg数据后,在CAD中采用“220400”线型显示。在MapGIS中,矢量线的参数信息中“线型号”为“13-0”的线图元导出为dxf/dwg数据后,在CAD中采用“270400”线型显示。依次类推。

(4)区填充样式

在MapGIS矢量数据中,矢量区数据是通过关联系统库中某一个“图案编号”来进行符号化显示;在dxf/dwg数据中,矢量区通过“图案填充”来进行符号化显示。

在CAD导出配置文件中,<RegionStyleMap>部分信息记录了MapGIS和CAD的区符号转换关系。如下图所示:

其中,在MapGIS中,矢量区的参数信息中“图案编号”为“14”的区图元导出为Dxf/Dwg数据后,在CAD中采用“750702”图案填充显示。在MapGIS中,矢量区的参数信息中“图案编号”为“13”的区图元导出为Dxf/Dwg数据后,在CAD中采用“750802”图案填充显示。依次类推。

提示:

在进行Dxf/Dwg数据转换时,颜色、大小和线宽等参数信息可自动进行转换,无需用户进行配置文件设置。但MapGIS符号比较复杂,大小、线宽、颜色等参数可记录在可变颜色中,此时无法正确转出。