[postgis-devel] Testing ST_LineMerge issue
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)');
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?
More information about the postgis-devel