Skip to content

R_GE_R_CONSECUTIVE_POINTS_SAME#

Requirement#

ID R_GE_R_CONSECUTIVE_POINTS_SAME
Description Points within a ring should not repeat (except the first and the last one in the case of GML, see R_GE_R_NOT_CLOSED). This error often occurs when two points are at the same location.
Parameter minVertexDistance Points can be considered the same despite (small) distances, see Vertex Requirement
Error code GE_R_CONSECUTIVE_POINTS_SAME

For example this ring is erroneous:

<gml:LinearRing>
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>  
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>1.0 1.0 0.0</gml:pos>      
<gml:pos>0.0 1.0 0.0</gml:pos>  
<gml:pos>0.0 0.0 0.0</gml:pos>
</gml:LinearRing>

This ring is also erroneous with the parameter minVertexDistance = 0.1

<gml:LinearRing>
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>0.05 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>  
<gml:pos>1.0 1.0 0.0</gml:pos>      
<gml:pos>0.0 1.0 0.0</gml:pos>  
<gml:pos>0.0 0.0 0.0</gml:pos>
</gml:LinearRing>

The next example shows an erroneous ring with a point that occurs twice but where the repetition is not consecutive. This results in a self-intersection, which is not covered by this requirement.

<gml:LinearRing>
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>  
<gml:pos>1.0 1.0 0.0</gml:pos>  
<gml:pos>1.0 0.0 0.0</gml:pos>  
<gml:pos>0.0 1.0 0.0</gml:pos>  
<gml:pos>0.0 0.0 0.0</gml:pos>
</gml:LinearRing>

Check#

ID C_GE_R_CONSECUTIVE_POINTS_SAME
Requirement ID R_GE_R_CONSECUTIVE_POINTS_SAME
Preconditions R_SC_SCHEMA_VALIDATION, R_GE_R_NOT_CLOSED, R_GE_R_TOO_FEW_POINTS
Description Checks whether a point repeats
Error code GE_R_CONSECUTIVE_POINTS_SAME
ID C_GE_R_DUPLICATE_POINT
Requirement ID R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_SELF_INTERSECTION (partially)
Preconditions R_SC_SCHEMA_VALIDATION, R_GE_R_NOT_CLOSED, R_GE_R_TOO_FEW_POINTS
Description Detects consecutive as well as other repeating points.
Error code GE_R_CONSECUTIVE_POINTS_SAME, GE_R_SELF_INTERSECTION

Test cases#

Test case ID CityGML model Expected result
GE-gml:LR-0002-T0001 SimpleSolid_SrefBS.gml OK
GE-gml:LR-0002-T0002 SimpleSolid_SrefBS-GE-gml-LR-0002-T0001.gml GE_R_CONSECUTIVE_POINTS_SAME in ring:
_Simple_BD.1_PG.6_LR.1
GE-gml:LR-0002-T0003 SimpleSolid_SrefBS-GE-gml-LR-0002-T0002.gml OK for this requirement, but has error GE_R_SELF_INTERSECTION detected by C_GE_R_DUPLICATE_POINT
GE-gml:LR-0002-T0004 SimpleSolid_SrefBS-GE-gml-LR-0002-T0003.gml OK for this requirement, but has error GE_R_SELF_INTERSECTION detected by C_GE_R_DUPLICATE_POINT
GE-gml:LR-0002-T0005 SimpleSolid_SrefBS-GE-gml-LR-0002-T0004.gml GE_R_CONSECUTIVE_POINTS_SAME in ring:
_Simple_BD.1_PG.6_LR.1
with parameter minVertexDistance = 0.1, GE_S_NOT_CLOSED error when minVertexDistance = 0.01
GE-gml:LR-0002-T0006 SimpleSolid_SrefBS-GE-gml-LR-0002-T0005.gml Not executed because GE_R_TOO_FEW_POINTS in ring:
_Simple_BD.1_PG.6_LR.1