[postgis-users] Polygon validity with one common point

Nicolas Ribot nicky666 at gmail.com
Fri Nov 28 02:45:03 PST 2008


Hi all,

I'v got a validity issue with one polygon.
As you can see in the attached picture, i've got a polygon with a
linear ring that touch itself at one point :

<gml:Polygon srsName="urn:ogc:def:derivedCRSType:OGC:1.0:image">
         <gml:exterior>
           <gml:LinearRing>
             <gml:posList>33.000000 889.000000 51.000000 894.000000
64.000000 912.000000 80.000000 924.000000 119.000000 923.000000
125.000000 929.000000 157.000000 928.000000 160.000000 915.000000
179.000000 914.000000 186.000000 907.000000 186.000000 901.000000
189.000000 901.000000 190.000000 913.000000 211.000000 918.000000
211.000000 936.000000 255.500000 938.500000 300.000000 941.000000
295.000000 945.000000 249.000000 947.000000 223.000000 973.000000
210.000000 977.000000 211.000000 936.000000 184.000000 934.500000
157.000000 933.000000 156.000000 929.000000 125.250000 930.500000
94.500000 932.000000 63.750000 933.500000 33.000000 935.000000
33.000000 889.000000</gml:posList>
           </gml:LinearRing>
         </gml:exterior>
</gml:Polygon>

Or in WKT

MULTIPOLYGON(((889.000000 33.000000,894.000000 51.000000,912.000000
64.000000,924.000000 80.000000,923.000000 119.000000,929.000000
125.000000,928.000000 157.000000,915.000000 160.000000,914.000000
179.000000,907.000000 186.000000,901.000000 186.000000,901.000000
189.000000,913.000000 190.000000,918.000000 211.000000,936.000000
211.000000,938.500000 255.500000,941.000000 300.000000,945.000000
295.000000,947.000000 249.000000,973.000000 223.000000,977.000000
210.000000,936.000000 211.000000,934.500000 184.000000,933.000000
157.000000,929.000000 156.000000,930.500000 125.250000,932.000000
94.500000,933.500000 63.750000,935.000000 33.000000,889.000000
33.000000)))

This polygon seems to be not valid for postgis since it detects a
Self-Intersection
   select polygon_id from polygon where isvalid(the_geom) = false;
   INFO: Ring Self-Intersection

The OGC Simple Feature for SQL says  : "A Polygon has no rings that
cross. The rings in the boundary of a Polygon may intersect at a
Point, but only as a tangent"

If i well understand this definition, the polygon seems to be correct
and should be valid for postgis...
Am i wrong ?

Regards

Jerome Gasperi



More information about the postgis-users mailing list