[postgis-users] Re: Comparing Geometries with Different SRIDs

Paragon Corporation lr at pcorp.us
Sun Sep 28 15:13:41 PDT 2008


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:pcreso at yahoo.com] 
Sent: Sunday, September 28, 2008 3:19 PM
To: lr at pcorp.us
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 <lr at pcorp.us> wrote:

> From: Paragon Corporation <lr at pcorp.us>
> Subject: RE: [postgis-users] Re: Comparing Geometries with Different 
> SRIDs
> To: "'PostGIS Users Discussion'" 
> <postgis-users at postgis.refractions.net>
> 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: postgis-users-bounces at postgis.refractions.net
> [mailto:postgis-users-bounces at postgis.refractions.net] 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: postgis-users-bounces at postgis.refractions.net
> [mailto:postgis-users-bounces at postgis.refractions.net] 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
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
> 
> 
> 
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users






More information about the postgis-users mailing list