[postgis-users] (Bug?) Strange Behavior with ST_SymDifference (line, surface)

Sandro Santilli strk at keybit.net
Fri Sep 27 06:26:07 PDT 2013


Your ascii art doesn't render correctly with fixed font,
unfortunately. Anyway I think I understood the issue.

I belive the problem is with mix of dimensions.
A line has 1 dimension only, by definition.
If we had to make "space" to subtract the points that
compose that line, how much space would those points take ?
Points have even less dimension: 0...

It's like subtracting points from an area and expecting
to see holes in it. Does it sound ?

--strk;


On Fri, Sep 27, 2013 at 02:52:42PM +0200, Rémi Cura wrote:
> hey,
> I'm experiencing a strange behavior with ST_SymDifference
> :<http://postgis.net/docs/manual-2.0/ST_SymDifference.html>
> 
> When doing symdiff of a line and a surface, I get the same surfaces with
> added points on surfaces boundary (where line crossed surface).
> 
> Example :
>   ___________
> *├---------┤*
>   -------------------
> 
> gives
>   ___________
> *|             |***
>   -------------------
> 
> I read the SQL MM definition
> (here<http://jtc1sc32.org/doc/N1101-1150/32N1107-WD13249-3--spatial.pdf‎>,
> page 67-68-69), and I found no trace of behavior with line against
> surfaces.
> 
> Mathematically , if we take for definition the union without the
> intersection, the result is false (no point on the line should be in the
> result, yet they are).
> 
> I was expecting as output one polygon each side of the line (ie 2 polygons).
> 
> I would appreciate any thoughts about this.
> Cheers,
> 
> Rémi-C
> PS : I know I can use ST_Split or other tricks for the same result in this
> simple case, but not so easily for trickier case.


More information about the postgis-users mailing list