Geometry
是层次结构的根类。它是一个不可实例化的类,但具有以下列表中所有几何值的公共属性,这些值来自任何 Geometry
子类。特定的子类具有它们自己的特定属性,稍后将描述。
几何属性
一个几何值具有以下属性:
-
它的 类型。每个几何属于层次结构中的一个可实例化类。
-
它的 SRID,或空间参考标识符。这值标识了几何对象所在的空间参考系统,该系统描述了几何对象所在的坐标空间。
在 MySQL 中,SRID 值是一个与几何值关联的整数。最大可用 SRID 值为 232−1。如果给定了更大的值,只使用低 32 位。
SRID 0 代表一个无限的平面笛卡尔平面,没有单位分配给其轴。要确保 SRID 0 的行为,请使用 SRID 0 创建几何值。SRID 0 是新几何值的默认值,如果没有指定 SRID。
对于多个几何值的计算,所有值必须具有相同的 SRID,否则将出现错误。
-
它在其空间参考系统中的 坐标,以双精度(8 字节)数字表示。所有非空几何都至少包含一对(X,Y)坐标。空几何不包含坐标。
坐标与 SRID 相关。例如,在不同的坐标系统中,两个对象之间的距离可能不同,即使对象具有相同的坐标,因为平面坐标系统和地球表面坐标系统(地球表面上的坐标)中的距离是不同的。
-
它的 内部、边界 和 外部。
每个几何占据某个空间位置。几何的外部是所有未被几何占据的空间。几何的内部是几何占据的空间。边界是几何的内部和外部之间的接口。
-
它的 MBR(最小边界矩形),或封闭几何。这是由最小和最大(X,Y)坐标形成的边界几何:
((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))
-
该值是否为 简单 或 非简单。几何值的类型(
LineString
、MultiPoint
、MultiLineString
) 是简单或非简单的。每种类型都确定了自己的简单或非简单断言。 -
该值是否为 闭合 或 非闭合。几何值的类型(
LineString
、MultiString
) 是闭合或非闭合的。每种类型都确定了自己的闭合或非闭合断言。 -
该值是否为 空 或 非空。几何为空如果它不包含任何点。空几何的外部、内部和边界未定义(即,以
NULL
值表示)。空几何被定义为总是简单的,并且面积为 0。 -
它的 维度。几何可以具有 −1、0、1 或 2 的维度:
-
−1 对于空几何。
-
0 对于长度为零且面积为零的几何。
-
1 对于长度非零且面积为零的几何。
-
2 对于面积非零的几何。
Point
对象的维度为零。LineString
对象的维度为 1。Polygon
对象的维度为 2。MultiPoint
、MultiLineString
和MultiPolygon
对象的维度与它们所组成的元素的维度相同。 -