[postgis-users] Polygon validity

Martin Davis mbdavis at refractions.net
Wed Mar 31 12:09:18 PDT 2010



Andrea Peri 2007 wrote:
> In the 6.1.5 paragraph of 06-103r3 is reported:
>
> For MultiPoints:
>
>> ..
>> A MultiPoint is simple if no two Points in the MultiPoint are equal 
>> (have identical coordinate values in X and Y).
>> Every MultiPoint is spatially equal under the definition in Clause 
>> 6.1.15.3 to a simple Multipoint.
>> ..
>
Yes, this is clear.  MultiPoints with duplicate Point values are non-simple.
>
> For curves:
>
>> ..
>> A Curve is simple if it does not pass through the same Point twice 
>> with the possible exception of the two end
>> points (Reference [1], section 3.12.7.3):
>> ∀ c ∈ Curve, [a, b] = c.Domain, c =: f :[a, b] → ℜ n
>> c.IsSimple ⇔ ∀ x1, x2 ∈ [a, b]: [ f(x1)=f(x2) ∧ x1<x2] ⇒ [x1=a ∧ x2=b]
>> ..
>
> So a curve with 2 consecutive point like this
> linestring (10 10, 20 20, 20 20, 30 30) is violating this definition
I disagree.  In the formal definition of Curve above, note the condition 
that x1 < x2.  In any continuous parameterization f of LINESTRING(10 10, 
20 20, 20 20, 30 30), if f(x1) = pt[1] (20 20) and f(x2 = pt[2] (20 20), 
then x1 must = x2. 

This is why I say that repeated points are topologically irrelevant - 
they are topologically indistinguishable under any continuous 
parameterization function.
>
> But even this line is invalid for this definition:
>
> linestring (10 10, 20 20, 30 30, 40 40, 50 50, 30 30, 60 60)
> (where the repeated points are not consecutive).
>
> because the definition reporting in document:
> ∀ x1, x2 ∈ [a, b]: [ f(x1)=f(x2) ∧ x1<x2] ⇒ [x1=a ∧ x2=b]
Yes, there's no issue here.  Under the continuous parameterization 
definition non-consecutive identical points clearly make the linestring 
non-simple.

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022




More information about the postgis-users mailing list