Skip navigation links
**Section Navigation** [Toggle]

MySQL 5.7 Reference Manual :: 11 Data Types :: 11.5 Extensions for Spatial Data :: 11.5.2 The OpenGIS Geometry Model :: 11.5.2.2 Geometry Class

- 11.5.2 The OpenGIS Geometry Model
- 11.5.2.1 The Geometry Class Hierarchy
- 11.5.2.2 Geometry Class
- 11.5.2.3 Point Class
- 11.5.2.4 Curve Class
- 11.5.2.5 LineString Class
- 11.5.2.6 Surface Class
- 11.5.2.7 Polygon Class
- 11.5.2.8 GeometryCollection Class
- 11.5.2.9 MultiPoint Class
- 11.5.2.10 MultiCurve Class
- 11.5.2.11 MultiLineString Class
- 11.5.2.12 MultiSurface Class
- 11.5.2.13 MultiPolygon Class

`Geometry`

is the root class of the
hierarchy. It is a noninstantiable class but has a number of
properties, described in the following list, that are common
to all geometry values created from any of the
`Geometry`

subclasses. Particular subclasses
have their own specific properties, described later.

**Geometry Properties**

A geometry value has the following properties:

Its

**type**. Each geometry belongs to one of the instantiable classes in the hierarchy.Its

**SRID**, or Spatial Reference Identifier. This value identifies the geometry's associated Spatial Reference System that describes the coordinate space in which the geometry object is defined.In MySQL, the SRID value is an integer associated with the geometry value. All calculations are done assuming Euclidean (planar) geometry. The maximum usable SRID value is 2

^{32}–1. If a larger value is given, only the lower 32 bits are used.Its

**coordinates**in its Spatial Reference System, represented as double-precision (8-byte) numbers. All nonempty geometries include at least one pair of (X,Y) coordinates. Empty geometries contain no coordinates.Coordinates are related to the SRID. For example, in different coordinate systems, the distance between two objects may differ even when objects have the same coordinates, because the distance on the

**planar**coordinate system and the distance on the**geocentric**system (coordinates on the Earth's surface) are different things.Its

**interior**,**boundary**, and**exterior**.Every geometry occupies some position in space. The exterior of a geometry is all space not occupied by the geometry. The interior is the space occupied by the geometry. The boundary is the interface between the geometry's interior and exterior.

Its

**MBR**(minimum bounding rectangle), or envelope. This is the bounding geometry, formed by the minimum and maximum (X,Y) coordinates:((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))

Whether the value is

**simple**or**nonsimple**. Geometry values of types (`LineString`

,`MultiPoint`

,`MultiLineString`

) are either simple or nonsimple. Each type determines its own assertions for being simple or nonsimple.Whether the value is

**closed**or**not closed**. Geometry values of types (`LineString`

,`MultiString`

) are either closed or not closed. Each type determines its own assertions for being closed or not closed.Whether the value is

**empty**or**nonempty**A geometry is empty if it does not have any points. Exterior, interior, and boundary of an empty geometry are not defined (that is, they are represented by a`NULL`

value). An empty geometry is defined to be always simple and has an area of 0.Its

**dimension**. A geometry can have a dimension of –1, 0, 1, or 2:–1 for an empty geometry.

0 for a geometry with no length and no area.

1 for a geometry with nonzero length and zero area.

2 for a geometry with nonzero area.

`Point`

objects have a dimension of zero.`LineString`

objects have a dimension of 1.`Polygon`

objects have a dimension of 2. The dimensions of`MultiPoint`

,`MultiLineString`

, and`MultiPolygon`

objects are the same as the dimensions of the elements they consist of.

## User Comments

If you are looking for a SQL function to count distance between 2 points, try this article — http://i1t2b3.com/2010/11/04/sql-function-to-count-distance-between-two-points/

Example of usage:

> SELECT DISTANCE(city1.lat, city1.lng, city2.lat, city2.lng);