MySQL 8.0 Reference Manual Including MySQL NDB Cluster 8.0

Spatial values, or geometries, have the properties described in Section 11.4.2.2, “Geometry Class”. The following discussion lists general spatial function argument-handling characteristics. Specific functions or groups of functions may have additional or different argument-handling characteristics, as discussed in the sections where those function descriptions occur. Where that is true, those descriptions take precedence over the general discussion here.

Spatial functions are defined only for valid geometry values. See Section 11.4.4, “Geometry Well-Formedness and Validity”.

Each geometry value is associated with a spatial reference system (SRS), which is a coordinate-based system for geographic locations. See Section 11.4.5, “Spatial Reference System Support”.

The spatial reference identifier (SRID) of a geometry identifies
the SRS in which the geometry is defined. In MySQL, the SRID value
is an integer associated with the geometry value. The maximum
usable SRID value is 2^{32}−1. If a
larger value is given, only the lower 32 bits are used.

SRID 0 represents an infinite flat Cartesian plane with no units assigned to its axes. To ensure SRID 0 behavior, create geometry values using SRID 0. SRID 0 is the default for new geometry values if no SRID is specified.

For computations on multiple geometry values, all values must be
in the same SRS or an error occurs. Thus, spatial functions that
take multiple geometry arguments require those arguments to be in
the same SRS. If a spatial function returns
`ER_GIS_DIFFERENT_SRIDS`

, it means
that the geometry arguments were not all in the same SRS. You must
modify them to have the same SRS.

A geometry returned by a spatial function is in the SRS of the geometry arguments because geometry values produced by any spatial function inherit the SRID of the geometry arguments.

The Open Geospatial Consortium guidelines require that input polygons already be closed, so unclosed polygons are rejected as invalid rather than being closed.

In MySQL, the only valid empty geometry is represented in the form
of an empty geometry collection. Empty geometry collection
handling is as follows: An empty WKT input geometry collection may
be specified as `'GEOMETRYCOLLECTION()'`

. This is
also the output WKT resulting from a spatial operation that
produces an empty geometry collection.

During parsing of a nested geometry collection, the collection is flattened and its basic components are used in various GIS operations to compute results. This provides additional flexibility to users because it is unnecessary to be concerned about the uniqueness of geometry data. Nested geometry collections may be produced from nested GIS function calls without having to be explicitly flattened first.