[postgis-users] How to tell if 2 geometries are spatially equal

Andy Anderson aanderson at amherst.edu
Mon Jun 2 13:04:47 PDT 2008


I wouldn't call this example "topologically" equal; one has two  
vertices and the other has three, and that's the only characteristic  
that's relevant in topology (not even their positions :-)

"Coincident" is probably a better term, though "spatially equal" is  
probably just as good, and contrasts well with the term "geometrically  
equal" that the manual uses to describe the ~= operator.

-- Andy

On May 30, 2008, at 7:54 PM, Martin Davis wrote:

> Will ST_equals do what you want?  It reports whether two geometries  
> are topologically equal.
>
> (So for example, ST_equals('LINESTRING(0 0, 10 10)','LINESTRING(0 0,  
> 5 5, 10 10)') is true)
>
> Obe, Regina wrote:
>> I recall this having come up before.  I always thought that ~= would
>> tell me if 2 geometries are spatially equal but it doesn't seem to.
>>
>> The only way I can figure to determine spatial equality is if
>> ST_Within(A,B)  And  ST_Within(B,A)  (or ST_Difference(A,B) AND
>> ST_Difference(B,A) both return an empty geometry collection)
>>
>> --So case in point
>>
>> SELECT geom1 ~= geom2 as what, ST_Within(geom1, geom2) AND
>> ST_Within(geom2, geom1) As spatial_equal,
>> 	ST_AsText(ST_Difference(geom1, geom2)) as diffgeom12,
>> ST_AsText(ST_Difference(geom2, geom1)) as diffgeom21 FROM (SELECT  
>> 'LINESTRING(1 1, 1 2, 1 3)'::geometry As geom1, 	'LINESTRING(1 1, 1  
>> 3)'::geometry As geom2) As foo
>>
>> Results:
>>
>> what | spatial_equal |        diffgeom12        |        diffgeom21
>> ------+---------------+-------------------------- 
>> +----------------------
>> ----
>> f    | t             | GEOMETRYCOLLECTION EMPTY | GEOMETRYCOLLECTION
>> EMPTY
>>
>>
>> Is there a function / operator that does that (also what does geom1 =
>> geom2 compare - is it just bounding boxes or is that the spatially  
>> equal
>> operator I am looking for?)
>>
>> Thanks,
>> Regina
>>
>> -----------------------------------------
>> The substance of this message, including any attachments, may be
>> confidential, legally privileged and/or exempt from disclosure
>> pursuant to Massachusetts law. It is intended
>> solely for the addressee. If you received this in error, please
>> contact the sender and delete the material from any computer.
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>
>>
>
> -- 
> Martin Davis
> Senior Technical Architect
> Refractions Research, Inc.
> (250) 383-3022
>
> _______________________________________________
> 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