[postgis-users] How to tell if 2 geometries are spatially equal
Martin Davis
mbdavis at refractions.net
Fri May 30 16:54:27 PDT 2008
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
More information about the postgis-users
mailing list