要素数据集简化

使用说明

当线几何对象或面几何对象的边界线上的节点太多时,可用【要素数据集简化】算子对其进行简化处理,同时尽量保持线的形状。对面数据集简化时,实质是对面对象的边界进行重采样。对参数化曲线(如弧线、自由曲线、贝兹曲线、B 样条曲线等)进行重采样时,会先将曲线转为线段,然后对转换线段进行重采样。注:CAD数据集中,参数化曲线不支持重采样。

【要素数据集简化】提供了两种重采样方法,即光栅法和道格拉斯-普克法:

光栅法

  • 过 P2 作线段 P1P2 的垂线,在垂线上选择距离点 P2 为“重采样距离”的 a1、a2 两点,分别连接 P1 和 a1、a2 两点并继续延伸形成重采样区域(下图中的蓝色区域),判断节点P3是否在该区域内。如果在该区域内,则删除节点 P2;否则保留。 由于节点P3在重采样区域内,所以节点P2被删除。
  • 连接 P1 和 P3,过 P3 作 P1P3的垂线,该垂线与前面的重采样扇形区域相交于 c1 和c2,则 P1b1 与 P1b2 延伸形成的重采样扇形区域与前面的重采样扇形区域相交形成新的重采样扇形区域 ,即 P1c1 和 P1b2 形成的新的扇形区域,
  • 再判断下一个节点,若 P4 在新扇形区域内,则重复第上一步,按照保留下来的点重新划定重采样区域。直到发现有一个节点在最新形成的重采样区域外为止。
  • 重采样结果如下图所示,被保留的点为 P1、P3、P4、P5、P6。 RTBend

道格拉斯-普克法

如下图所示,将折线的首尾节点相连,得到一条连线,其他节点到这条线的距离的最大值为 d,如果 d > m(重采样容限),则 d 所对应的节点保留,并以该节点为分界点,将原线对象划分为两部分,分别继续使用该方法进行重采样,直到所有划分出来的线都不能再进行重采样(即仅包含两个节点);否则所有中间节点均被删除。

  • 下图中的 d > m,因此节点 2 保留,原线对象划分为两部分,分别包含节点1、2和2、3、4、5、6。

RTGeneral1

  • 如下左图所示,由节点1、2构成的线不能再简化。对由节点2、3、4、5、6构成的线重复上一步骤,由于 d < m,因此节点2和6之间的节点均被删除,剩余节点2和6,因此不能再继续简化,从而得到下图(右)所示的重采样最终结果。

RTGeneral2

参数说明

参数名 默认值 参数释义 参数类型
待简化的数据集 待简化的数据集,支持线和面数据集。 FeatureRDD
简化算法 支持光栅法(Bend)和道格拉斯-普克算法(DouglasPeucker) JavaSimplifyAlgorithm
简化容限 对容限值内的节点进行简化,不同的算法计算方式不同,这里的简化容限在光栅法中为“重采样距离”,在道格拉斯-普克算法中为“重采样容限”,详见使用说明中的图示。填写方法为距离+单位,支持单位有Meter, Centimeter, Millimeter, Decimeter, Kilometer, Yard, Inch, Foot, Mile, Degree, Second, Minute, Radian,示例:10 Meter。 JavaDistance
是否保留拓扑关系
(可选)
false 如果为false时不保留对象与对象的拓扑关系,即每个对象单独进行简化,如果为true则简化后的对象之间的拓扑关系不变 Boolean
是否保留小对象
(可选)
false 是否保留小对象,对象简化后,线长度小于容限或面面积小于容限平方的对象被视为小对象,如果选择保留小对象,则这些对象不会被简化(简化后会被还原),否则会被删除掉 Boolean
节点容限
(可选)
0.0 用于对数据集进行预处理,比如对线或面数据集进行节点捕捉。默认值是 0.0。当容限小于 1.0e-10 时,如果数据集的坐标系为地理坐标系时,将使用1.0e-7 的节点容限,当坐标系为空或投影坐标系时,使用 1.0e-2 的节点容限。 Double

输出结果

简化后的数据集(FeatureRDD),结果数据集保留原始数据集的所有字段信息