There's sort of a grey area between RDBMS and spatial semantics.... if A = B does st_equals(A,B) ?
same thing with null and GEOMETRY EMPTY, there is similarity but the ideas are not identical I would expect A = B to return false if SRIDs are not the same, but ST_Equals(A,B) to error out if SRIDs are not the same. I'm that screwed up. Blame my parents. P. On Sun, Sep 28, 2008 at 11:48 AM, Paragon Corporation <[EMAIL PROTECTED]> wrote: > I feel your pain Charlie, but I'm on Reid's side. Given that some spatial > databases do support cross compare between geometries of different SRID > (e.g. DB II), not sure about Oracle or SQL Server 2008, I would prefer an > answer that is in compliance or throws an exception when it can't be sure. > Its annoying from a debugging perspective to deal with things that fail > silently. Returning false is a fail silently in my book. > > If we deal with this as a special case - why wouldn't we deal with > everything else the same with every other relational compare we do? Its > just wrong, but granted doing the wrong thing would be conveniently useful > in many cases. > > Thanks, > Regina > > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Charlie > Savage > Sent: Sunday, September 28, 2008 2:10 PM > To: PostGIS Users Discussion > Subject: Re: [postgis-users] Re: Comparing Geometries with Different SRIDs > > > > Reid Priedhorsky wrote: >> Charlie Savage wrote: >>>> The 2 point could be spatially equal given different SRIDS and >>>> coordinates if they were projected to a common SRID. So should >>>> geometry operators silently Call st_transform to make the righthand >>>> match the lefthand before comparing? This would be quite the >>>> expensive operation. >>> >>> No. You can't automatically transform between different SRID values >>> Think of the case of one geometry with an SRID value of 4326 and one >>> with an SRID value of -1 (no coordinate system). >> >> Exactly. >> >>> So different SRID values, then the geometries are not equal. >> >> No -- as Stanley said, the geometries could be in fact equal, but >> expressed in different SRS. So if ST_Equals() returned False, it would >> be wrong. > > Maybe. But returning "Operation permitted" is even worse because it means > you can't do natural things like this (without extra annoying SRID checking > code) in plpgsql: > > IF (geom1 == geom2) ... END IF; > > Or the example with the union earlier posted > > >>> It is up to the user to transform geometries to the same SRID before >>> calling ST_EQUALS. >> >> Exactly. ;) > > So, I still vote that st_equals will not blow up when comparing two > geometries with different SRID values, it just will return false. > > Charlie > > > _______________________________________________ > postgis-users mailing list > [email protected] > http://postgis.refractions.net/mailman/listinfo/postgis-users > _______________________________________________ postgis-users mailing list [email protected] http://postgis.refractions.net/mailman/listinfo/postgis-users
