



18.5.6. Functions That Test Spatial Relationships Between Geometries
The OpenGIS specification defines the following functions. They
test the relationship between two geometry values
g1 and g2 .
Currently, MySQL does not implement these functions according to
the specification. Those that are implemented return the same
result as the corresponding MBRbased functions. This includes
functions in the following list other than
Distance() and Related() .
These functions may be implemented in future releases with full
support for spatial analysis, not just MBRbased support.
The return values 1 and 0 indicate true and false, respectively.

Contains(g1 ,g2 )
Returns 1 or 0 to indicate whether
g1 completely contains
g2 .

Crosses(g1 ,g2 )
Returns 1 if g1 spatially crosses
g2 . Returns
NULL if g1 is a
Polygon or a
MultiPolygon , or if
g2 is a Point
or a MultiPoint . Otherwise, returns 0.
The term spatially crosses denotes a
spatial relation between two given geometries that has the
following properties:
The two geometries intersect
Their intersection results in a geometry that has a
dimension that is one less than the maximum dimension of
the two given geometries
Their intersection is not equal to either of the two
given geometries

Disjoint(g1 ,g2 )
Returns 1 or 0 to indicate whether
g1 is spatially disjoint from
(does not intersect) g2 .

Distance(g1 ,g2 )
Returns as a doubleprecision number the shortest distance
between any two points in the two geometries.

Equals(g1 ,g2 )
Returns 1 or 0 to indicate whether
g1 is spatially equal to
g2 .

Intersects(g1 ,g2 )
Returns 1 or 0 to indicate whether
g1 spatially intersects
g2 .

Overlaps(g1 ,g2 )
Returns 1 or 0 to indicate whether
g1 spatially overlaps
g2 . The term spatially
overlaps is used if two geometries intersect and
their intersection results in a geometry of the same
dimension but not equal to either of the given geometries.

Related(g1 ,g2 ,pattern_matrix )
Returns 1 or 0 to indicate whether the spatial relationship
specified by pattern_matrix
exists between g1 and
g2 . Returns –1 if the
arguments are NULL . The pattern matrix is
a string. Its specification will be noted here if this
function is implemented.

Touches(g1 ,g2 )
Returns 1 or 0 to indicate whether
g1 spatially touches
g2 . Two geometries
spatially touch if the interiors of the
geometries do not intersect, but the boundary of one of the
geometries intersects either the boundary or the interior of
the other.

Within(g1 ,g2 )
Returns 1 or 0 to indicate whether
g1 is spatially within
g2 .


