宗地界址关系计算

原文发布时间:2012-06-20

作者:跑

联系QQ:44295133

1 引子

我们在处理地籍数据过程中,经常需要将宗地多边形拆分为界址线、界址点,并根据空间位置建立相互间关系。此外,我们假定有两个前提。一是批量处理或海量数据库,将所有宗地拆分的同时应消除重叠,随后通过界址线分别计算与宗地左右关系、界址点起止关系;二是适用于打印出图的单个宗地,除满足前述宗地界址关系外,还要求界址点从左上角开始、顺时针方向递增编号。

本文尝试通过FME这一数据转换平台实现该功能,同时欢迎大家指正。(注:为简化描述,下文只对较复杂或关键设置截图说明。)

2 实施
        2.1 几何图形

基本上,通过转换器Chopper即可将宗地拆分为界址线(设置最大允许顶点数为2)、界址点(设置为1)。根据几何图形的不同,通过以下两个途径来消除重叠。


            2.1.1 界址点提取及编号

一般来说,转换器DuplicateRemover可以将标记字段重复的记录筛选出来,因此只需提取各点平面坐标X/Y并把它们合并为前述标记字段。这种情况下,我们未考虑点与点之间拓扑关系,即一定距离范围内的所有点可视作同一点。尽管转换器CoordinateRounder对坐标截位可近似处理,但该运算不是严密的拓扑关系,这里不建议使用。

此外,我们也可以选用转换器PointOnPointOverlayer。对于_overlaps=0的部分,可直接取为界址点;对于_overlaps≥1,需将ptlist{*}编号相关联的部分剔除。如下图

宗地界址关系计算

两种方法比较不难看出,利用转换器DuplicateRemover消除重叠点流程更简练,效率更高。此外,本文即采用此法。

对于界址点编号,可按指定分组字段进行,比如行政街坊,这里把它作为参数发布了。

    宗地界址关系计算

2.1.2 界址线提取

可以利用转换器LineOnLineOverlayer,设置项“Separate Collinear Segments”应选择默认值“No”,即融合共享边。如需编号,也按上述方法。

宗地界址关系计算

2.2 关系建立

所谓关系建立,即相关联的二者之一,其必须包含对方的属性。而这个属性可以选择唯一标识码(BSM),也可选择数据格式的主键(如ObjectID、FeatureID等等)。这实际上是一个属性传递的操作。

2.2.1 界址点与线

获取界址线起止点的界址编号,可以有三种方法来实现界址点/线的关系建立:⑴通过转换器PointOnLineOverlayer,由list{0}、list{1}获取界址点编号;⑵将界址线分拆为两个端点,然后通过转换器PointOnPointOverlayer依次与界址点叠加进而获取其编号;⑶通过转换器FeatureMerger关联X/Y合并字段,获取界址点编号。

第一种方法,考虑到与界址线叠加的点,其顺序不具备编号递增的规律,而list{}却按照该顺序排列,因此无法行不通。

第二种方法,界址线顶点保留了其原有属性,与界址点叠加后形成字段相加,以此输出作为SUPPLIER端即可通过FeatureMerger传递给界址线。

第三种方法,分别获取界址点、及界址线两端点坐标并合并字段,以此字段作为关联通过FeatureMerger传递属性。

后两种方法经测试,只在效率上稍有差别,即方法3>2。

2.2.2 界址线与宗地

可以使用转换器LineOnAreaOverlayer获取二者关系。由于界址线由宗地直接提取,并且在前述消除重叠的处理时是按照宗地多边形顺序的优先级来保留的界址线的,因此lnlist{0}poly_id即为左宗地、lnlist{1}poly_id为右宗地。之后通过poly_id把宗地的标识码关联上,这里要两次用到转换器FeatureMerger。判断界址线与宗地左右关系的一个实例就是,当宗地方向为顺时针,孤立存在、或无共享边的时候,界址线左边应为空。

宗地界址关系计算

必须注意的是,不能认为“lnlist{0}标识码”或“lnlist{1}标识码”就是我们需要的属性,除非在处理界址线的时候事先已按照“标识码”字段进行了排序。

3 小结

利用FME提供的一组/6个空间叠置运算的转换器(其中点/点,点/线叠置运算还支持拓扑容差设置项),我么可以实现不同几何类型的要素间属性传递。本文正是基于此着手的,考虑到通用性,将其制作成自定义转换器。参数设置及流程如下:

宗地界址关系计算

宗地界址关系计算

流程中所有转换器在FME2008版本中均存在且设置一样,因此可以在ArcGIS9.3及以上环境中调用。关于效率,在2G内存的笔记本上测试15万个宗地图形,运行时间约为10分钟,尚可。


4 问题与思考
        4.1 宗地多边形包含弧段

关于宗地的弧段边界,图形解析方面,我们可以在弧段上均匀内插若干点。问题在于此处的宗地界址关系难以描述,而目前也没有权威文献或规范对此进行约束。因此此处将其转换为折线。

4.2 宗地不满足拓扑关系

当宗地拓扑关系不正确时,该流程计算的宗地界址关系有有可能存在漏洞。例如,宗地边界相交但未有顶点的时候,LineOnLineOver­layer的结果将导致界址线被拆断,并由于空间拓扑的移动导致与宗地边界不严密吻合,进而导致界址线起止点未能与界址点对应。又如,界址线与存在重叠的宗地叠加的结构可能导致(图4)中lnlist{}表计数>2,即存在lnlist{0}、lnlist{1}、lnlist{2}……此时的左右关系可能是错的。

关于单个宗地界址点顺序编号的问题,前面已有文章介绍: https://blog.****.net/fmechina/article/details/80722837

这里不再赘述。