ST_Equals(different srids) should return an error.  Its not that its unknown
its that we are too lazy to calculate it.  Its quite known if we had the
energy.

No - that is not true.  You cannot calculate it in some cases.

We should go with binary equal rather than geometric equality.  I think that
would satisfy Charlie too.  I guess I have my parents to blame too :)

I just want to be able to write this code:

IF (GEOM1 = GEOM2) THEN

And not have it blow up...

And related doing a UNION like described in an earlier email.

Last - I'm fine with what Paul proposes. That is that the = operator does not blow up, while ST_EQUALS does blow up. Having 2 versions of a function, one that raises an exception and one that does not, is not that uncommon...Alternatively, ST_EQUALS could take a 2nd parameter that specifies whether to blow up or not, with a default value of blow up....

Charlie


Thanks,
Regina

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Brent
Wood
Sent: Sunday, September 28, 2008 6:40 PM
To: PostGIS Users Discussion
Subject: RE: [postgis-users] Re: Comparing Geometries with Different SRIDs

After a belated case of RTFM...

It seems UNION does an implict distinct on all rows, unless UNION ALL is
applied (How many Regina's do you want :-)

I guess it makes sense to drop duplicates unless otherwise specified.


stations=# select 1 union select 1;
 ?column?
----------
        1
(1 row)

stations=# select 1 union all select 1;
 ?column?
----------
        1
        1
(2 rows)

stations=# select 'Regina' union select 'REGINA';  ?column?
----------
 Regina
 REGINA
(2 rows)

stations=# select 'Regina' union select 'REGINA' union all select 'Regina';
?column?
----------
 Regina
 REGINA
 Regina
(3 rows)


Cheers

   Brent Wood




--- On Mon, 9/29/08, Paragon Corporation <[EMAIL PROTECTED]> wrote:

From: Paragon Corporation <[EMAIL PROTECTED]>
Subject: RE: [postgis-users] Re: Comparing Geometries with Different SRIDs To: "'PostGIS Users Discussion'" <[email protected]> Date: Monday, September 29, 2008, 11:13 AM Brent, Ah never mind. For some reason I was under the false assumption that in SQL Server with dictionary sort order that even though

REGINA = Regina

That I would get 2 Reginas when I union them. That is not the case. I just get one.

I'm not sure why I thought that or maybe it was like that a long time ago.

Anyrate - so I guess I am back to square one. By the way - I think we should be talking about ST_OrderingEquals not ST_Equals.

I'm not sure which if any of those PostGIS is using to do the check, but it should be ST_OrderingEquals since using ST_Equals introduces a whole lot more philosophical can of worms. Is space empty or is Empty space.

Thanks,
Regina


-----Original Message-----
From: Brent Wood [mailto:[EMAIL PROTECTED]
Sent: Sunday, September 28, 2008 3:19 PM
To: [EMAIL PROTECTED]
Subject: RE: [postgis-users] Re: Comparing Geometries with Different SRIDs

Hi Regina,

I think that is more an encoding/language issue than case in such an analogy.

To wax metaphysical, does a muslim worship a different god because they spell it allah? (Similarly Jews with Jehovah & French with dieu...)

So is st_equals() a cross-language thesaurus, or is it restricted to the specified SRID? :-)




Spotcha,

   Brent Wood


--- On Mon, 9/29/08, Paragon Corporation <[EMAIL PROTECTED]> wrote:

From: Paragon Corporation <[EMAIL PROTECTED]>
Subject: RE: [postgis-users] Re: Comparing Geometries
with Different
SRIDs
To: "'PostGIS Users Discussion'" <[email protected]>
Date: Monday, September 29, 2008, 8:04 AM Charlie,

On second thought not sure how DB II deals with
relational Union of
geometries.  Does anybody have that by chance to test?

I suppose we could say this is the same deal as
difference in casing.
SELECT 'Regina'
UNION
SELECT 'REGINA'
UNION
SELECT 'Regina'

Even if both geometries are the same which SRID would
you choose?  So
we should not be doing a geometry compare, but a
binary compare.
SELECT ST_AsEWKB('SRID=4269;POINT(1 3)') =
ST_AsEWKB('SRID=4326;POINT(1 3)')


Thanks,
Regina

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
On Behalf Of
Paragon Corporation
Sent: Sunday, September 28, 2008 2:48 PM
To: 'PostGIS Users Discussion'
Subject: RE: [postgis-users] Re: Comparing Geometries
with Different
SRIDs

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



_______________________________________________
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


_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

--
Charlie Savage
http://cfis.savagexi.com

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to