ST_Equals
Determines if two spatial objects are spatially equivalent. The coordinates of the two objects and their WKT/WKB representations must match exactly for ST_Equals to return TRUE.
The order of the points do not matter in determining spatial equivalence:
- 
LINESTRING(1 2, 4 3) equals LINESTRING(4 3, 1 2). 
- 
POLYGON ((0 0, 1 1, 1 2, 2 2, 2 1, 3 0, 1.5 -1.5, 0 0)) equals POLYGON((1 1 , 1 2, 2 2, 2 1, 3 0, 1.5 -1.5, 0 0, 1 1)). 
- 
MULTILINESTRING((1 2, 4 3),(0 0, -1 -4)) equals MULTILINESTRING((0 0, -1 -4),(1 2, 4 3)). 
Coordinates are stored as FLOAT types. Thus, rounding errors are expected when importing Well-Known Text (WKT) values because the limitations of floating-point number representation.
g1 and g2 must both be GEOMETRY objects or both be GEOGRAPHY objects. Also, g1 and g2 cannot both be of type GeometryCollection.
Behavior type
ImmutableSyntax
ST_Equals( g1, g2 )
Arguments
- g1
- Spatial object to compare to g2, type GEOMETRY or GEOGRAPHY
- g2
- Spatial object to compare to g1, type GEOMETRY or GEOGRAPHY
Returns
BOOLEAN
Supported data types
| Data Type | GEOMETRY | GEOGRAPHY (Perfect Sphere) | GEOGRAPHY (WGS84) | 
|---|---|---|---|
| Point | Yes | Yes | Yes | 
| Multipoint | Yes | Yes | Yes | 
| Linestring | Yes | Yes | Yes | 
| Multilinestring | Yes | Yes | Yes | 
| Polygon | Yes | Yes | Yes | 
| Multipolygon | Yes | Yes | Yes | 
| GeometryCollection | No | No | No | 
Examples
The following examples show how to use ST_Equals.
Two linestrings:
=> SELECT ST_Equals (ST_GeomFromText('LINESTRING(-1 2, 0 3)'),
   ST_GeomFromText('LINESTRING(0 3, -1 2)'));
 ST_Equals
--------------
 t
(1 row)
Two polygons:
=> SELECT ST_Equals (ST_GeographyFromText('POLYGON((43.22 42.21,40.3 39.88,
   42.1 50.03,43.22 42.21))'),ST_GeographyFromText('POLYGON((43.22 42.21,
   40.3 39.88,42.1 50.31,43.22 42.21))'));
 ST_Equals
--------------
 f
(1 row)