# 三维空间分析

# 三维叠加分析

# 求交

# 功能说明

三维叠加分析求交,即求两个数据集的交集的操作,两个数据集中相交的部分被保存到结果数据集中,其余部分被排除。

# 操作说明

  1. 启动"分析"面板->"三维叠加分析"功能,弹出如下所示对话框,图层A为“输入图层”,图层B为“叠加图层”。如下图所示:

  1. 选择两个图层,并设置输出结果的路径,叠加类型选择“求交”。

  2. 在处理的图元设置中,系统提供“整个图层”和“选择图元”两种输入方式,以下对其进行说明:

  • 【整个图层】:整个图层中所有的图元都将参与叠加分析

  • 【选择图元】:用户自定义参与叠加分析的图元,系统提供“交互拾取”、“属性查询”和“交互添加”三种选择方式。被选择的图元将显示在图元列表中,用户可以通过修改OID值来更换已选图元。

    • 交互拾取:用户在视图中单击选择参与叠加的图元;
    • 属性查询:用户通过输入SQL语句来选择参与融合的图元;
    • 交互添加:用户通过勾选图元的OID号来选择参与融合的图元,如下图所示:

  1. 输入图元设置完成后进行参数设置。
  • 【属性操作】:用户可选择“保留属性”和“忽略属性”,说明如下:
    • 若选择“保留属性”,则生成图元将继承参与叠加分析图元的全部属性字段。
    • 若选择“忽略属性”,则生成图元只保留默认的属性字段,如mpSurfArea、mpVolume。
  • 【容差】:认为在给定容差范围内的数据是符合要求的或者一致的。
  • 【处理复合要素】:当一个图元要素叠加后变成两个部分时,若勾选此项则生成的结果仍为一个要素,若不勾选此项则生成的结果为两个不同的要素。
  1. 用户可勾选“结果图层添加到场景中”,点击"执行"进行叠加操作。

# 求差

# 功能说明

从输入图层(图层A)中去掉与叠加图层(图层B)相重叠的部分。

# 操作说明

参见“求交”中操作说明。

# 三维裁剪分析

# 功能说明

三维裁剪分析功能是将图层B作为裁剪框,对图层A进行裁剪分析,获取内裁或外裁结果。裁剪结果显示效果及属性信息与图层A一致。

# 操作说明

  1. 启动"分析"面板->"三维裁剪分析"功能,弹出如下所示对话框:

  1. 选择图层A和图层B数据,图层A为待裁剪图层,图层B为裁剪框。并设置输出结果的路径;

  2. 在处理的图元设置中,系统提供“整个图层”和“选择图元”两种输入方式,以下对其进行说明:

  • 【图元范围】:可设置裁剪分析的图元范围,默认对整个图层进行操作。用户可选择对部分图元进行操作。

    • 整个图层:整个图层中所有的图元都将参与叠加分析;
    • 选择图元:用户自定义参与叠加分析的图元,系统提供“交互拾取”、“属性查询”和“交互添加”三种选择方式。被选择的图元将显示在图元列表中,用户可以通过修改OID值来更换已选图元。
  • 【交互拾取】:用户在视图中单击选择参与叠加的图元;

  • 【属性查询】:用户通过输入SQL语句来选择参与融合的图元;

  • 【交互添加】:用户通过勾选图元的OID号来选择参与融合的图元,如下图所示:

  • 【裁剪类型】:系统提供了内裁和外裁两种裁剪类型。
  • 【属性操作】:用户可选择“保留属性”和“忽略属性”。若选择“保留属性”,则生成图元将继承图层A全部属性字段,若选择“忽略属性”,则生成图元只保留默认的属性字段,如mpSurfArea、mpVolume。
  • 【容差】:认为在给定容差范围内的数据是符合要求的或者一致的。
  • 【处理复合要素】:当一个图元要素裁剪后变成两个部分时,若勾选此项则生成的结果仍为一个要素,若不勾选此项则生成的结果为两个不同的要素。
  1. 点击"执行"进行裁剪分析操作,可获取图层A的局部范围数据。

# 三维融合分析

# 功能说明

三维融合分析,即计算某个图层或输入图元的几何并集,并将融合后的图元及其属性都写入输出图层中。

以下是各种空间关系下的体图元进行三维融合分析的结果表:

示意图 空间关系 是否融合 融合效果
共点
共线
共面
共体/包含/重合
相离

# 操作说明

  1. 启动"分析"面板->"三维融合分析"功能,弹出如下所示对话框:

  1. 选择输入图层,并设置输出结果的路径。用户可勾选“是否将结果回写到源数据中”,若勾选则融合结果直接覆盖源数据。

提示:

若勾选“是否将结果回写到源数据中”,则源数据中的所有图元都将被融合后的结果图元覆盖,源数据中原本的图元都将不复存在。该操作是不可逆的,请谨慎操作。

  1. 输入图元设置,系统提供“整个图层”、“语义融合”和“选择图元”三种输入方式,以下对其进行说明:
  • 【整个图层】:整个图层中符合融合条件的图元都将被融合为单个图元,融合条件请参考本小节“功能说明”中的表格。

  • 【语义融合】:勾选后指定属性字段,可将指定属性字段中属性值相同的图元进行融合。

  • 【选择图元】:用户自定义参与融合分析的图元,系统提供“交互拾取”、“属性查询”和“交互添加”三种选择方式。被选择的图元将显示在图元列表中,用户可以通过修改OID值来更换已选图元。

    • 【交互拾取】:用户在视图中单击选择参与融合的图元;
    • 【属性查询】:用户通过输入SQL语句来选择参与融合的图元;
    • 【交互添加】:用户通过勾选图元的OID号来选择参与融合的图元,如下图所示:

  1. 输入图元设置完成后进行参数设置。
  • 【属性操作】:用户可选择“保留属性”和“忽略属性”,说明如下:
    • 若选择“保留属性”,则生成图元将继承被融合图元的全部属性字段。
    • 若选择“忽略属性”,则生成图元只保留默认的属性字段,如mpSurfArea、mpVolume。

首先,我们将生成图元所继承的图元称为“被融合图元”,其余参与融合的图元称为“融合图元”。遵循该说法,以下对该问题进行解答:

①当“整个图层”进行融合时,被融合图元是多个图元中OID值最小的图元;

②当“选择图元”进行融合时,被融合图元是窗口的图元列表中排第一位的图元,即第一个选中的图元。

  • 【容差】:认为在给定容差范围内的数据是符合要求的或者一致的。
  1. 用户可勾选“结果图层添加到场景中”,点击"执行"进行融合操作。

# 三维缓冲分析

# 功能说明

将简单要素类点或线通过三维缓冲参数设置创建生成三维的球或者体要素在场景中展示或应用。

# 操作说明

  1. 启动"分析"面板->"三维缓冲分析"功能,弹出如下所示对话框:

  1. 选择缓冲数据图层,可直接选择场景中已加载的数据,或在数据库中直接选择。择缓冲结果保存路径。

  1. 系统提供“整个图层”和“选择图元”两种输入方式,以下对其进行说明:
  • 【整个图层】:整个图层中符合缓冲条件的图元都将被缓冲并保存结果。

  • 【选择图元】:用户自定义参与分析的图元,系统提供“交互拾取”、“属性查询”和“交互添加”三种选择方式。被选择的图元将显示在图元列表中,用户可以通过修改OID值来更换已选图元。

    • 【交互拾取】:用户在视图中单击选择参与分析的图元;
    • 【属性查询】:用户通过输入SQL语句来选择参与分析的图元;
    • 【交互添加】:用户通过勾选图元的OID号来选择参与分析的图元,如下图所示:

  1. 输入图元设置完成后进行参数设置。

  • 【指定半径】:设置缓冲扩展的半径数值,以达到适合的结果。单位为米。
  • 【指定属性】:通过下拉框选择要素属性表中的数值字段获取缓冲扩展的半径值,以达到适合的结果。单位为米。
  • 【连接类型】:线要素缓冲拐点处的缓冲形状,提供平头和圆头选择。
  • 【缓冲质量】:可设置6~60范围内的任何数字。缓冲质量值越高,生成的三维要素越平滑,同时也会增加处理时间。
  • 【容差】:认为在给定容差范围内的数据是符合要求的或者一致的。
  • 【缓冲区颜色】:生成缓冲结果保存的颜色设置。

# 三维拓扑检查

# 功能说明

本功能用于检查三维点/线/面/体的空间位置关系,根据拓扑规则条件,检索出不符合条件的三维点/线/面/体数据。

提示:

拓扑检查与处理是一个实时变化的过程,拓扑处理后会影响拓扑查错结果,自动修复某些错误或引致新的错误。

比如一条独立的直线会检查出两个悬挂点,处理第一个悬挂点时,删除该线,第二个悬挂点其实已经不存在了。

比如一个封闭的等高线被剪断为一条很长线和一条微短线,如果检查“不能有微短线”规则时,直接删除了该微短线,会引致较长的线变为悬挂弧段。这也说明在拓扑处理时一定要按照业务场景选择合适的处理方法。

因此拓扑查错需多执行几次,直到检查不出不符合拓扑规则的记录为止。

# 操作说明

  1. 启动"分析"面板->"三维拓扑查错"功能,弹出如下所示对话框:

  1. 选择待检查的三维点/线/面/体、拓扑规则及错误等级;

  2. 界面中,用户还可进行如下操作:

  • 【添加】:列表框中增加一条记录,添加的数据显示为图层A。
  • 【全选】:选择列表框中的所有检查规则项。
  • 【移除】:移除列表框中选择的检查规则项。
  • 【当前显示范围】:勾选后,只会检查出当前显示范围内的数据的拓扑错误,不处于当前显示范围内的数据的拓扑错误不会被检查出来。
  • 【容差】:拓扑容差是一个距离值,表示处于这一距离范围内的所有节点是重合的。
  • 【高级】
    • 最大错误个数:勾选后,可输入最大错误个数
    • 用于设置拓扑检查错误个数的上限。当拓扑错误较多时,勾选此选项并设置上限值后,可提高检查的效率。
    • 最小弧段长度:只有当规则为“必须没有微短线”,此选项才能输入。用于设置微短线的最小长度。若线长度小于设置的阈值,则结果有拓扑错误。
    • 碎小三角形最小面积:只有当规则为“不能有碎小三角形”,此选项才能输入。用于设置碎小三角形的最小面积。若碎小三角形面积小于设置的阈值,则结果有拓扑错误。
    • 狭长三角形纵横比:只有当规则为“不能有狭长三角形”,此选项才能输入。用于设置狭长三角形的最大纵横比。若狭长三角形纵横比大于设置的阈值,则结果有拓扑错误。
  • 【显示错误(红色部分)】:不勾选,显示为原始数据的图示;勾选后,红色部分为拓扑错误。
  1. 点击"执行"按钮,弹出拓扑错误管理窗口,检查出来的拓扑错误显示在“拓扑错误管理”列表中。

三维点/线/面/体拓扑查错包含的规则如下所示:

数据类型
规则类型
规则描述 拓扑处理
原始数据图示
拓扑错误图示
三维点 必须为单部分 点要素只能具有一个部分(不能为多点) 拆分
不能有重复点 不能有重复点 删除重复点
三维线 必须为单部分 线要素只能具有一个部分(不能为多线) 拆分
必须为三维线 线要素必须为三维线(不能为二维线) 删除二维线
必须有足够的坐标点 线的点个数不能少于两个 删除
不能有微短线 线的长度不能小于阈值 删除
不能有重复点 线上的点坐标不能重复 删除重复点
不能有伪节点 节点所关联的折线有且仅有两条 合并
不能有悬挂点 线的端点必须与其他线的端点相连 删除
不能自相交 同一要素的线不能与自身相交或重叠 剪断
不能相交 线不能与其他线的任何部分相交或重叠 剪断
三维面 必须为单部分 面要素只能具有一个部分(不能为多面) 拆分
不能有孤立顶点 面内存在未被任何三角形引用的点 删除孤立点
不能有重复顶点 面内顶点几何坐标不能在空间上重复 删除重复点
(包括纹理坐标) 面内顶点几何坐标与纹理坐标均不能重复 删除重复点
不能有重复三角形 面内三角形不能在空间上重复 删除重复三角形
不能有碎小三角形 三角形的面积小于给定最小阈值 删除碎小三角形
不能有退化三角形 三角形的三个顶点基本接近一条直线(包括针状退化和帽状退化三角形) 删除(消退)退化三角形
不能有狭长三角形 三角形的高度与底边长度相差很大,形态上呈现出细长、扁平的三角形
不能自相交 面内2个无公共边的三角形相交 删除(剪断)自相交三角形
不能有奇异边 当两个以上的三角形共享一条公共边时,这样的边被称为奇异边或非流形边。奇异边会使面的延展出现分叉、分支 拆分
必须法向一致 面内三角形通过顶点索引序列表示,它们的顺序也指示了该三角形的方向(朝向)。面内所有三角形的方向必须一致 翻转
必须拓扑连通 从任意一个三角形开始,以任意一个三角形为目标,两者可以连通 分离
三维体 必须为单部分 体要素只能具有一个部分(不能为多体) 拆分
不能有孤立顶点 体内存在未被任何三角形引用的点 删除冗余点
不能有重复顶点 体内顶点几何坐标不能在空间上重复 删除重复点
(包括纹理坐标) 体内顶点几何坐标与纹理坐标均不能重复 删除重复点
三角形 体内三角形不能在空间上重复 删除重复三角形
三角形 三角形的面积小于给定最小阈值 删除碎小三角形
三角形 三角形的三个顶点基本接近一条直线(包括针状退化和帽状退化三角形) 删除(消退)退化三角形
三角形 三角形的高度与底边长度相差很大,形态上呈现出细长、扁平的三角形。采用三角形纵横比概念来定量描述,纵横比值越大,形状越狭长。(纵横比=1.0,为等边三角形)普遍经验认为:纵横比为1,质量最好;2 -- 6质量高; 6--20质量低; 大于20质量非常差,建议对其处理。
不能有洞 体内部存在三角面片缺失而形成开放区域 补洞
不能自相交 体内2个无公共边的三角形相交 删除(剪断)自相交三角形
不能有奇异边 当两个以上的三角形共享一条公共边时,这样的边被称为奇异边或非流形边。奇异边会使面的延展出现分叉、分支 拆分
必须法向一致 体内单个面内三角形通过顶点索引序列表示,它们的顺序也指示了该三角形的方向(朝向)。体内单个面内所有三角形的方向必须一致,且一致朝外。 翻转
必须拓扑连通 从任意一个三角形开始,以任意一个三角形为目标,两者可以连通
必须封闭 体内面边界必须彼此相连,形成水密的封闭空间 删除

# 三维拓扑错误管理

# 功能说明

对三维点/线/面/体进行拓扑规则检查后,所有不符合规则的记录会罗列在【拓扑错误管理】列表中。

# 操作说明

功能主界面:

列表框右键,可选择拓扑处理的方法。

  • 【显示】:当用户执行多种拓扑规则检查时,可通过下拉选择规则,过滤显示拓扑错误。
  • 【导出】:将检查出来的拓扑错误导出成Excel表格。
  • 【重新检查】:重新生成拓扑检查结果。当用户修复错误后,可执行“重新检查”,观察结果不同。
  • 【显示设置】:设置拓扑错误显示的颜色、点大小和线宽,当勾选“半透明原始数据”,数据会以半透明的样式显示。

  • 【结束工具】:清空当前拓扑检查结果。

  • 【列表项】:列表中会显示不符合拓扑规则的错误信息。当一个要素中包含针对同一种规则包含多个错误信息时,如一个面中包含多个重复顶点,会通过“+”将多个错误信息合并。双击根节点时显示的要素范围信息,双击某条子错误时,显示的该错误信息。

    • 拓扑规则:检查的拓扑规则。点击后,高亮显示拓扑错误的部分。比如区不能重叠,点击后,高亮显示区重叠的部分。
    • 图层A:图层A的数据名称,即目标图层。点击后,高亮显示拓扑错误的部分。
    • 错误级别:拓扑检查时设定的错误级别。
    • 要素1(ID):产生拓扑错误的第一个要素的OID。点击后,高亮显示产生拓扑错误的要素1的图元。
    • 要素2(ID):产生拓扑错误的第二个要素的OID。点击后,高亮显示产生拓扑错误的要素2的图元。

# 三维点-必须为单部分

规则说明

“必须为单部分”:三维点要素只能具有一个部分(不能为多点)。

在实际应用中,当一个三维点包含多个部分时,会用组合点(即多点)的模式处理。如组合点是由多个三维点组合而成,只有一条属性记录。

当用户在特定需求下时,要求场景内的三维点图元都不能有多点时,可以通过“必须为单部分”规则,检查所有不符合要求的点,再对其进行处理。

处理方式

“拆分”:在“拓扑错误管理”列表中,右键“拆分”,将组合点拆分为多个三维点,每一个点具有一条属性记录,但属性值是相同的。

# 三维点-不能重复点

规则说明

“不能重复点”:场景中不能有重复三维点,即XYZ方向容差范围内不能有2个或多个点。

当用户在特定需求下时,要求场景内的三维点图元都不能重复点时,可以通过“不能重复点”规则,检查所有不符合要求的点,再对其进行处理。

处理方式

“删除重复点”:在“拓扑错误管理”列表中,右键“删除重复点”,将多余的重复三维点删除。

# 三维线-必须为单部分

规则说明

“必须为单部分”:三维线要素只能具有一个部分(不能为多线)。

在实际应用中,当一条三维线包含多个部分时,会用组合线(即多线)的模式处理。如一些电缆电线由多条线组成,可以通过组合线的模式将连接的电缆电线组成为一条线。此时电缆电线已经变为一条线,只有一条属性记录。

当用户在特定需求下时,要求场景内的三维线图元都不能为多线时,可以通过“必须为单部分”规则,检查所有不符合要求的线,再对其进行处理。

处理方式

“拆分”:在“拓扑错误管理”列表中,右键“拆分”,将组合线(多线)拆分为多条三维线,每条线具有一条属性记录,但属性值是相同的(除MapGIS默认的mpLength字段)。

# 三维线-必须为三维线

规则说明

“必须为三维线”:线必须三维线,不能为二维线,即不存在Z值。

在实际应用中,一些未被处理的线要素处在二维平面,当要表示为电缆电线或地下管道等地物时,线要素会有一定的高度或深度,则需要三维线。

MapGIS GDB中线简单要素类可同时存储二维线和三维线,看不出来明显差异,但在底层数据存储时,二维线仅包含xy坐标信息,三维线则包含了xyz坐标信息。在MapGIS中二维线混用时可能导致程序异常。

当用户在特定需求下时,要求场景内的线图元为三维线时,可以通过“必须为三维线”规则,检查所有不符合要求的线,再对其进行处理。

处理方式

“删除”:在“拓扑错误管理”列表中,右键“删除”,可删除二维线。

“升维”:在“拓扑错误管理”列表中,右键“升维”,给二维线设置一个高度Z,将二维线转为三维线。

用户也可以通过“数据转换”功能,实现二维线转三维线。

# 三维线-必须有足够的坐标点

规则说明

“必须有足够的点”:线的点个数不能少于两个,即必须有首尾端点。没有足够坐标点的线属于错误数据,建议处理。

处理方式

删除:在“拓扑错误管理”列表中,右键“删除”,可删除少于两个节点的异常线。

# 三维线-不能有微短线

规则说明

“不能有微端线”:三维线图层内不允许存在线长度小于规定阈值的线。

在实际应用中,常常有微短线,即线长度小于规定阈值的线存在,比如河流有细小的支流、道路有细小的分支等。太过短小的线对数据显示处理等操作并没有意义且可能会导致异常。当用户在特定需求下,要求一个线图层内不允许有微短线存在时,可以通过“不能有微短线”规则,检查所有不符合要求的线,再对其进行处理。

处理方式

删除:在“拓扑错误管理”列表中,右键“删除”,可删除微短线。

提示:

在清除微短线时,当线对应的OID为多线时,会删除有错误的线,但保留其他无拓扑错误的线;当线对应的OID不为多线时,删除该OID。

用户也可选择通过“连接线”功能,将微短线合并到旁边比较长的线段中。

# 三维线-不能有重复点

规则说明

“不能有重复点”:在一个三维线要素中,点与点不可以重复,首尾端点重复除外。

如下图所示:该图为一个线要素,绘制顺序为①-②-③-④-⑤-⑥,其中拐点③和拐点④重合了,这种情况被称为重复点。但是点①和点⑥属于首尾端点,不是重复点。

重复点在实际地图数据中,是没有意义的,且会导致数据的冗余。增加数据量,建议处理。

处理方式

删除重复点:在“拓扑错误管理”列表中,右键“删除重复点”,可删除某个重复点。

也可通过“线上删点”功能,交互删除重复点,只保留一个点。

# 三维线-不能有伪节点

规则说明

“伪节点”:节点所关联的折线有且仅有两条。线图层中的线图元之间,当存在两条线的端点相连时,此位置属于伪节点。

如下图所示,图中有五条线,每一条线用一种颜色表示。其中线①和②连接处属于伪节点。线②和③连接位置,是线③的端点与线②的拐点相连,不属于伪节点。线②④⑤连接位置,由于有三条线的端点相连,也不属于伪节点。

“不能有伪节点”:三维线图层内不存在伪节点。

伪节点一般情况下不影响后期的分析,用户可不对其进行处理。但在特定需求下,用户可检查伪节点并对其进行处理。如道路线,由于前期是通过图幅分幅进行采集操作,一些很长的道路线会被划分为多条线。这个时候会有两个弊端,一个是多条线就会有多条属性记录,会增加数据量;二是在地图绘制过程中,由于是多条线,对动态注记的标注会产生一定影响。

处理方式

在“拓扑错误管理”中,没有提供伪节点的处理方法。用户可通过“连接线”功能对其进行处理,将伪节点两端的线段连接为一条。

# 三维线-不能有悬挂点

规则说明

“不能有悬挂点”:三维线的端点必须与其他三维线的端点相连,线的端点没有与其他线的端点相连,称为悬挂点。悬挂点所在的线段称为悬挂弧段。

如下图所示三条线段分别用不同颜色表示,其中②和③均有一个端点没有与其他端点相连,属于悬挂弧段;①不属于悬挂弧段。

在实际应用中,对于某些特定的线图层,比如等高线,应该是一个闭合的线,可通过此功能检查不闭合的线要素。

处理方式

“删除”:在“拓扑错误管理”中,右键“删除”,可删除悬挂弧段。

用户也可通过“线编辑”系列功能对其进行删除线、输入线等编辑操作。

# 三维线-不能自相交

规则说明

“不能自相交”:同一要素的线不能与自身相交或重叠。

处理方式

剪断:在“拓扑错误管理“中,右键“剪断”,可将自相交的三维线剪断为若干线要素,结果多个要素的属性值相同(除MapGIS默认的mpLength字段)。

用户也可通过“线上点编辑”或“剪断线”功能,进行交互式移点、剪断线等操作。

# 三维线-不能相交

规则说明

“不能相交”:线不能与其他线的任何部分相交或重叠。

在实际应用中,对于某些特殊线,比如等高线,不会与相邻的等高线相交的。可通过此功能检查异常三维线。

处理方式

“剪断”:在“拓扑错误管理”中,右键“剪断”,可将相交线剪断为若干线要素,结果多个要素的属性值相同(除MapGIS默认的mpLength字段)。

用户也可通过“线上点编辑”或“剪断线”功能,进行交互式移点、剪断线等操作。

# 三维面/体-必须为单部分

规则说明

“必须为单部分”:面/体图元中每一个要素只能具有一个部分,不能为多面或多体。可通过“交互显示单面信息”功能查询模型单面及三角形信息。

提示:

以如下长方体为例,是一个独立的三维要素,对应了一条属性记录,但是查看单面信息时,可发现其由三个面组成(顶面、底面和侧面)。若该三维要素是三维面,属于多部分;但若该三维要素是三维体,则不属于多部分。

处理方式

“拆分”:在“拓扑错误管理”中,右键“拆分”,将组合面拆分为多个部分,每一个面/体具有一条属性记录,但属性值是相同的(除MapGIS默认的mpPerimeter、mpSurfArea、mpVolume字段)。

# 三维面/体-不能有孤立顶点

规则说明

“孤立顶点”:面内存在未被任何三角形引用的点。一般情况下,孤立顶点属于数据的冗余点,没有意义,建议删除。可通过“交互显示单面信息”功能查询模型单面及三角形信息。

如下图所示模型,右上角有一个独立的顶点,未被任何三角形引用,即孤立顶点。

处理方式

“删除孤立顶点”:在“拓扑错误管理”中,右键“删除孤立顶点”,可删除孤立顶点。

# 三维面/体-不能有重复顶点

规则说明

“不能有重复顶点”:面内顶点几何坐标不能在空间上重复。

如下图所示长方体模型,虽然为一个要素,但包括了三个单面(顶面、侧面、底面),以箭头所指的顶点为例,当①②③④四个三角形在该位置顶点不是同一个顶时,则认为是重复顶点。三角形⑤是另一个单面的三角形,本身不与①②③④共顶点。可通过“交互显示单面信息”功能查询模型单面及三角形信息。

重复顶点不仅会造成数据冗余,还可能会影响拓扑连通性。但是对于部分应用,比如希望同一个地质体上可以绘制出不同纹理效果,重复顶点就是有意义的。用户可根据业务逻辑决定是否进行处理。

处理方式

“删除重复顶点”:在“拓扑错误管理”中,右键“删除重复顶点”,可删除重复顶点。

# 三维面/体-不能有重复顶点(包括纹理坐标)

规则说明

“不能有重复顶点(包括纹理坐标)”:三维面/体内任意面顶点几何坐标与纹理坐标均不能重复。

对于MapGIS的三维面/体模型,顶点信息中不仅包含了几何坐标,还有法向、纹理坐标信息,纹理坐标信息会影响纹理的绘制效果。在地质模型建模时,考虑到不同方向的地质纹理亮度、颜色等显示效果略有差异,可通过重复顶点记录不同的纹理坐标来实现差异化的效果。但如果重复顶点中纹理坐标是相同的,对于纹理绘制来说没有差异,并且会造成数据的冗余,建议处理。

处理方式

“删除重复顶点”:在“拓扑错误管理”中,右键“删除重复顶点”,可删除重复顶点。

# 三维面/体-不能有重复三角形

规则说明

“不能有重复三角形”:三维面/体图元中每一个面内三角形不能在空间上重复。可通过“交互显示单面信息”功能查询模型单面及三角形信息。

此处的重复三角形属于数据存储错误,同一个三角形被存储两次,建议处理。如下图所示模型,查询单面信息时可发现“10号”和“11号”两个三角形使用的顶点一样(此处不是重复顶点),只是顺序不一致。

处理方式

“删除重复三角形”:在“拓扑错误管理”中,右键“删除重复三角形”,可删除重复三角形。

# 三维面/体-不能有碎小三角形

规则说明

“不能有碎小三角形”:面/体图元中任意三角形的面积不能小于给定阈值。可通过“交互显示单面信息”功能查询模型单面及三角形信息。

处理方式

“删除碎小三角形”:在“拓扑错误管理”中,右键“删除碎小三角形”,可删除碎小三角形。

# 三维面/体-不能有退化三角形

规则说明

“不能有退化三角形”:三维面/体图元中任意三角形的三个顶点不能基本接近一条直线(包括针状退化和帽状退化三角形)。

提示:

退化三角形是极端的狭长三角形,狭长三角形只是质量不高,用户可选择是否处理,但退化三角形建议处理。

处理方式

“删除退化三角形”:在“拓扑错误管理”中,右键“删除退化三角形”,可删除退化三角形。

“消除退化三角形”:在“拓扑错误管理”中,右键“消除退化三角形”,可将退化三角形与旁边三角形进行重新计算三角形信息。

# 三维面/体-不能有狭长三角形

规则说明

“狭长三角形”:三角形的高度与底边长度相差很大,形态上呈现出细长、扁平的三角形。

MapGIS采用三角形纵横比概念来定量描述,纵横比值越大,形状越狭长。(等边三角形纵横比等于1)普遍经验认为:纵横比为1,质量最好;2~6质量高;6~20质量低;大于20质量非常差,建议对其处理。

三角形纵横比等于内半径除以圆的外半径的两倍,即下图所示2r/R。

“不能有狭长三角形”:面/体图元中任意三角形的高度与底边长度不能相差很大,形态上呈现出细长、扁平的三角形。

狭长三角形只是质量不高,用户可选择是否处理。

处理方式

“删除退化三角形”:在“拓扑错误管理”中,右键“删除退化三角形”,可删除狭长三角形。

# 三维面/体-不能自相交

规则说明

“不能自相交”:三维面/体图元中任意面的两个无公共边的三角形不能相交。可通过“交互显示单面信息”功能查询模型单面及三角形信息。

提示:

1、若两个独立的面/体图元,在空间上有三角形相交时,不属于自相交;

2、若一个独立的面/体图元,包括多个面,多个面间的三角形有相交时,不属于自相交。

处理方式

“删除自相交三角形”:在“拓扑错误管理”中,右键“删除自相交三角形”,可删除自相交三角形。

“剪断自相交三角形”:在“拓扑错误管理”中,右键“剪断自相交三角形”,可将自相交三角形分解为多个三角形。

# 三维面/体-不能有奇异边

规则说明

“奇异边”:当两个以上的三角形共享一条公共边时,这样的边被称为奇异边或非流形边。奇异边会使面的延展出现分叉、分支。

如下图所示一个面中包括三个三角形,公共的边即奇异边。

“不能有奇异边”:面/体图元中任意面中不能有奇异边。奇异边属于复杂数据,建议处理。

提示:

当面要素中包含多个面时,处于多个面中的三个三角形共边时,不属于奇异边。可通过“交互显示单面信息”功能查询模型单面及三角形信息。

处理方式

“拆分奇异边”:在“拓扑错误管理”列表中,右键“翻转”,可将奇异边的单面拆分为多个面。

# 三维面/体-必须法向一致

规则说明

三维面/体中任意面内三角形都是通过顶点索引序列表示,它们的顺序也指示了该三角形的方向(朝向),即法向。法向会影响纹理的绘制及光照效果。

“必须法向一致”:三维面/体中任意面内所有三角形的法向必须一致。可通过“显示三角形信息”或“交互显示单面信息”查看三角形法向信息。

提示:

对于三维面,没有内外之分,因此只需保证法向一致即可达到纹理显示相同的效果。对于三维体,会有内外之分,需保证所有法向朝外。

处理方式

“翻转”:在“拓扑错误管理”列表中,右键“翻转”,可调整法向,使其保持一致。

用户可通过“交互反转面法向”来交互调整三角形的法向。

# 三维面/体-必须拓扑连通

规则说明

“拓扑连通”:从任意一个三角形开始,以任意一个三角形为目标,两者可以连通。

如下图所示,在单面中包括七个三角形,①②③间拓扑连通,④⑤⑥⑦间拓扑连通。其中④和⑦虽然不共边,但④和⑤连通,⑤和⑦连通,因此④和⑦连通,①和⑤不连通。

提示:

1、当存在重复顶点时,即使显示上感觉是连通的,但由于重复顶点导致相邻两个三角形并不是真正共边,也认为是不连通。

2、若一个独立的面/体图元,包括多个面,多个面间的三角形不连通,不属于拓扑不连通。

“必须拓扑连通”:三维面/体中任意面都是拓扑连通。

处理方式

“分离”:在“拓扑错误管理”列表中,右键“分离”,可将不连通单面分离为多个面。

# 三维体-不能有洞

规则说明

“洞”:任意面内部存三角面片缺失而形成开放区域。

如下图所示六边形的体,包括了三个单面(顶面、侧面和底面)。只有箭头所指的位置,没有三角形属于洞。

“不能有洞”:三维体图元中不存在“洞”。在实际应用中,三维体模型应该是完整连续的,“洞”属于异常区域,需要处理。

处理方式

“补洞”:在“拓扑错误管理”列表中,右键“补洞”,可自动将洞位置封闭。

提示:

三维体的“洞”是属于不封闭,但不能所有不封闭都当“洞”进行处理。如下所示的六边形的体。黄色线标识的区域均无三角形面。若直接“补洞”,会导致体外面异常。

# 三维体-必须封闭

规则说明

“必须封闭”:三维体内所有面边界必须彼此相连,形成水密的封闭空间。三维体是一个实心整体,不封闭时会导致纹理绘制错误,且剖切结果异常,建议处理。

提示:

一个三维体可能包含了多个面,只需保证所有面组合后封闭即可。可通过“交互显示单面信息”功能查询模型单面及三角形信息。

处理方式

“删除”:在“拓扑错误管理”列表中,右键“删除”,可将不封闭体删除。