On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions

### 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 MBR-based 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 MBR-based 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 double-precision 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`.

 Published under the terms of the GNU General Public License Design by Interspire