[postgis-devel] Testing ST_LineMerge issue

Kevin Neufeld kneufeld at refractions.net
Fri Dec 19 11:07:37 PST 2008

I find that simplicity / validity is always a big topic, so I upgraded the section (with pictures and all) in the 
PostGIS docs regarding the OGC's definitions.


To answer your question Mark, the OGC specs say that a LINESTRING is simple if it does not pass through the same point 
twice.  To me, this means self-intersections and perhaps coincident vertices.  At the moment, PostGIS returns true for 
this when by rights it should be false:
SELECT issimple('LINESTRING(0 0, 1 1, 1 1, 2 2)');
(1 row)

Something to look into?  Are coincident vertices considered to be a self-intersection?

Also, Regina, I think the examples in ST_IsSimple and ST_IsValid should be clarified.  The example in ST_Simple tests 
the simplicity on a polygon, even though this will always return true.  ST_IsValid tests the validity of a linestring, 
even though this will always return true (except for cases when the linestring is actually a linearring ... and even 
then, I believe it just tests to see if the linestring has > 2 points).


Mark Cave-Ayland wrote:
> Obe, Regina wrote:
>> Now there are 2 issues here.
>> 1) GEOS ST_LineMerge is obviously not smart enough to realize that
>> linemerging something like that is silly.
> Ooops :)
>> 2) ST_MakeLine lets you get away with creating this monstrosity.  Which
>> hmm I suppose there are reasons why someone may want to, but perhaps we
>> shouldn't go there.
> This reminds me actually, what is the OGC-SFS take on repeated points? I 
>  don't remember seeing any mention of this in any of the parser/unparser 
> work I did earlier, although it seems to be required for a geometry to 
> be valid. So is it also required for a geometry to be simple?
> ATB,
> Mark.

More information about the postgis-devel mailing list