“MySQL 数据类型:空间数据类型”的版本间差异
(建立内容为“category:MySQL == 空间数据类型 == == OpenGIS 几何模型 == == 支持的空间数据格式 == == 几何格式正确性和有效性 == == 创建空…”的新页面) |
无编辑摘要 |
||
第1行: | 第1行: | ||
[[category:MySQL]] | [[category:MySQL]] | ||
== 关于空间数据类型 == | |||
MySQL 空间扩展可实现地理 Feature 的生成,存储和分析: | |||
# 表示空间值的数据类型 | |||
# 操纵空间值的功能 | |||
# 空间索引可缩短对空间列的访问时间 | |||
* 空间数据类型和功能可用于 '''MyISAM''','''InnoDB''','''NDB''' 和 '''ARCHIVE''' 表。对于空间列的索引,MyISAM 和 InnoDB 支持 '''SPATIAL''' 和 '''非SPATIAL''' 索引。【???】 | |||
地理 Feature 是世界上任何具有位置的东西。功能可以是: | |||
# 一个实体。例如,山,池塘,城市。 | |||
# 空间。例如,市区,热带地点。 | |||
# 可定义的位置。例如,十字路口,作为两条街道相交的特定位置。 | |||
== 空间数据类型 == | == 空间数据类型 == | ||
MySQL 具有与 '''OpenGIS''' 类相对应的空间数据类型。【???】 | |||
一些空间数据类型保存单个几何值: | |||
# GEOMETRY【几何】 | |||
# POINT【点】 | |||
# LINESTRING【线】 | |||
# POLYGON【多边形】 | |||
* GEOMETRY 可以存储任何类型的几何值。其他单值类型(POINT,LINESTRING 和 POLYGON)将其值限制为特定的几何类型。 | |||
其他空间数据类型包含值的集合: | |||
# MULTIPOINT【多点】 | |||
# MULTILINESTRING【多线】 | |||
# MULTIPOLYGON【多边形集】 | |||
# GEOMETRYCOLLECTION | |||
* GEOMETRYCOLLECTION 可以存储任何类型的对象的集合。其他集合类型(MULTIPOINT,MULTILINESTRING 和 MULTIPOLYGON)将集合成员限制为具有特定几何类型的成员。 | |||
示例:要创建一个名为geom的 table,该 table 具有一个名为g的列,该列可以存储任何几何类型的值,请使用以下语句: | |||
<syntaxhighlight lang="xml"> | |||
CREATE TABLE geom (g GEOMETRY); | |||
</syntaxhighlight> | |||
* 可以在 NOT NULL 空间列上创建 SPATIAL 索引,因此,如果您打算为该列构建索引,请声明NOT NULL: | |||
*: <syntaxhighlight lang="xml"> | |||
CREATE TABLE geom (g GEOMETRY NOT NULL); | |||
</syntaxhighlight> | |||
== OpenGIS 几何模型 == | == OpenGIS 几何模型 == | ||
OGC 的“SQL with Geometry Types”环境提出的几何类型集基于 OpenGIS Geometry Model 。在此模型中,每个几何对象都具有以下常规属性: | |||
# 它与空间参考系统相关联,该系统描述了在其中定义对象的坐标空间。 | |||
# 它属于某些几何类。 | |||
GEOMETRY 类的层次结构: | |||
* Geometry(不可实例化) | |||
* Point(可实例) | |||
* Curve(不可实例化) | |||
** LineString(可实例) | |||
*** Line | |||
*** LinearRing(可实例) | |||
* Surface(不可实例化) | |||
** Polygon(可实例) | |||
* GeometryCollection(可实例) | |||
* MultiPoint(可实例) | |||
* MultiCurve(不可实例化) | |||
** MultiLineString(可实例) | |||
* MultiSurface(不可实例化) | |||
** MultiPolygon(可实例) | |||
Geometry 是基础类。这是一个抽象类。 Geometry 的可实例化子类被限制为存在于二维坐标空间中的零、一和二维几何对象。 | |||
基本 Geometry 类具有 Point,Curve,Surface 和 GeometryCollection 的子类: | |||
# Point 代表零维对象。 | |||
# Curve 代表一维对象,并具有子类别 LineString,以及子子类别 Line 和LinearRing 。 | |||
# Surface 是为二维对象设计的,具有子类 Polygon。 | |||
# GeometryCollection 具有名为 MultiPoint,MultiLineString 和 MultiPolygon 的专用零维,一维和二维收集类,用于分别建模与 Points,LineStrings 和 Polygons 的集合对应的几何形状。 MultiCurve 和 MultiSurface 作为抽象超类引入,它们泛化了收集接口以处理 Curves 和 Surfaces。 | |||
* Geometry,Curve,Surface,MultiCurve 和 MultiSurface 被定义为非实例类。它们为其子类定义了一组通用的方法,并且为了扩展性而将它们包括在内。 | |||
* Point,LineString,Polygon,GeometryCollection,MultiPoint,MultiLineString 和 MultiPolygon 是可实例化的类。 | |||
=== GEOMETRY 类 === | |||
Geometry是层次结构的'''根类'''。它是一个'''不可实例化'''的类,但具有以下列表中描述的许多属性,这些属性对于从任何 Geometry子类创建的所有几何值都是共有的。(特定的子类具有自己的特定属性) | |||
Geometry 属性:<br/> | |||
# 它的 '''类型''' 。每个几何都属于层次结构中的可实例化类之一。 | |||
# 其 '''SRID''' 或'''空间参考标识符'''。该值标识与几何相关的空间参考系统,该系统描述了在其中定义几何对象的坐标空间。 | |||
#: 在 MySQL 中,'''SRID''' 值是与几何值关联的整数。可用的最大 SRID 值为 '''232-1'''【???】。如果给出较大的值,则仅使用较低的 32 位。不管实际 SRID 值如何,所有计算均假设 SRID 为 0。 SRID 0 表示无限平坦的笛卡尔平面,其轴未分配任何单位。 | |||
# 它在空间参考系统中的“坐标”,表示为双精度(8 字节)数字。所有非空几何均包括至少一对“(X,Y)”坐标。空几何不包含坐标。 | |||
#: 坐标与 SRID 相关。例如,在不同的坐标系中,即使对象具有相同的坐标,两个对象之间的距离也可能会有所不同,这是因为 平面 坐标系上的距离和 大地坐标 坐标系上的距离(地球表面)是不同的东西。 | |||
# 它的“内部”,“边界”和“外部”。 | |||
#: 每个几何都在空间中占据某些位置。几何图形的外部是几何图形未占用的所有空间。内部是几何所占据的空间。边界是几何图形的内部和外部之间的接口。 | |||
# 其 '''MBR(最小边界矩形)'''或包络。这是由最小和最大“(X,Y)”坐标形成的边界几何: | |||
#: <syntaxhighlight lang="xml"> | |||
((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY)) | |||
</syntaxhighlight> | |||
# 该值是 '''simple''' 还是 '''nonsimple''' 。类型(LineString,MultiPoint,MultiLineString)的几何值可以是简单的或不简单的。每种类型自己确定其值的简单或非简单。【???】 | |||
#: | |||
# 该值是 '''closed''' 还是 '''notclosed''' 。类型(LineString,MultiString)的几何值已关闭或未关闭。每种类型自己确定其值的关闭或未关闭。 | |||
#: | |||
# 值是 '''空''' 还是 '''非空'''。如果几何没有任何点,则为空。未定义空几何的外部,内部和边界(即,它们由“NULL”值表示)。空几何定义为始终简单,面积为 0。 | |||
#: | |||
# 其 '''尺寸''' 。几何的尺寸可以为 -1、0、1 或 2: | |||
## -1 为空的几何。【空几何】 | |||
## 0 用于没有长度和面积的几何。【点、点集】 | |||
## 1 用于非零长度和零面积的几何。【线、线集】 | |||
## 2 用于非零面积的几何。【几何】 | |||
#* Point 对象的尺寸为零。 LineString 对象的尺寸为 1。Polygon对象的尺寸为 2。MultiPoint,MultiLineString 和 MultiPolygon 对象的尺寸与其组成的元素的尺寸相同。 | |||
=== Point 类 === | |||
Point 是代表坐标空间中单个位置的几何。 | |||
Point示例: | |||
# 想象一下有许多城市的大型世界地图。 Point 对象可以代表每个城市。 | |||
# 在城市地图上,Point 对象可以代表公交车站。 | |||
Point属性: | |||
# X:坐标值。 | |||
# Y:坐标值。 | |||
# Point 被定义为零维几何。 | |||
# Point 的边界是空集。 | |||
=== Curve 类 === | |||
Curve 是一维几何,通常由一系列点表示。 Curve的特定子类定义了点之间的插值类型。Curve是不可实例化的类。 | |||
Curve 属性: | |||
# Curve具有其点的坐标。 | |||
# Curve被定义为一维几何。 | |||
# Curve如果不两次通过同一点,则很简单,不同之处是,如果起点和终点相同,则曲线仍可以是简单的。 | |||
# 如果 Curve 的起点等于端点,则为闭合。 | |||
# 闭合的 Curve 的边界为空。 | |||
# 未封闭的 Curve 的边界由其两个端点组成。 | |||
# 简单且封闭的Curve是 '''LinearRing'''。【环线】 | |||
=== LineString 类 === | |||
LineString 是一种作为两点间直线插值的 Curve。 | |||
LineString 示例: | |||
# 在世界地图上,LineString 个对象可以代表河流。 | |||
# 在城市地图中,LineString 个对象可以代表街道。 | |||
LineString 属性: | |||
# LineString 具有段的坐标,由每个连续的点对定义。 | |||
# 如果 LineString 正好由两点组成,则它是 '''Line'''。【线段?】 | |||
# 如果 LineString 是封闭且简单的,则它是 LinearRing。【环线】 | |||
=== Surface 类 === | |||
Surface是二维几何。这是一个不可实例化的类。'''它唯一的可实例化子类是 Polygon'''。 | |||
Surface 属性: | |||
# Surface 被定义为二维几何。 | |||
# OpenGIS 规范将简单的 Surface 定义为一种几何形状,它由与单个外部边界和零个或多个内部边界相关联的单个“补丁”组成。 | |||
# 简单Surface的边界是与其外部和内部边界相对应的一组闭合曲线。 | |||
=== Polygon 类 === | |||
Polygon 是代表多边几何图形的平面 Surface。它由单个外部边界和零个或多个内部边界定义,其中每个内部边界在 Polygon 中定义一个孔【???hole】。 | |||
Polygon 示例:<br/> | |||
在区域地图上,Polygon 对象可以代表森林,地点等。 | |||
Polygon 属性: | |||
# Polygon 的边界由一组 LinearRing 对象(即简单且闭合的 LineString 对象)组成,这些对象组成其外部和内部边界。 | |||
# Polygon 没有交叉的环。 Polygon 边界中的环可在 Point 处相交,但仅作为切线。 | |||
# Polygon 没有线条,尖峰 或 刺孔。 | |||
# Polygon 的内部是连接的点集。 | |||
# Polygon 可能有孔。有孔(hole)的 Polygon 的外部是未连接在一起的。每个孔都定义了外部的连接组件。 | |||
=== GeometryCollection 类 === | |||
GeometryCollection 是一个几何,它是'''零个或多个'''任何类的'''几何的集合'''。 | |||
几何图形集合中的所有元素必须位于相同的空间参考系统(即,位于相同的坐标系)中。尽管以下各节中描述的 GeometryCollection 的子类可能会限制成员资格,但是几何集合的元素没有其他限制。限制可能基于: | |||
# 元素类型(例如 MultiPoint 只能包含 Point 元素) | |||
# 尺寸 | |||
# 限制元素之间的空间重叠程度 | |||
=== MultiPoint 类 === | |||
MultiPoint 是由 Point 元素组成的几何集合。这些点没有以任何方式连接或排序。 | |||
MultiPoint 示例: | |||
# 在世界地图上,MultiPoint 可以代表一连串的小岛。 | |||
# 在城市地图上,MultiPoint 可以代表售票处的网点。 | |||
MultiPoint 属性: | |||
# MultiPoint 是零维几何。 | |||
# 如果 MultiPoint 的 Point 值中没有两个相等(具有相同的坐标值),则很简单。 | |||
# MultiPoint 的边界是空集。 | |||
=== MultiCurve 类=== | |||
MultiCurve是由Curve个元素组成的几何集合。 MultiCurve是'''不可实例化'''的类。 | |||
MultiCurve 属性: | |||
# MultiCurve 是一维几何。 | |||
# MultiCurve 仅当其所有元素都简单时才简单;两个元素之间唯一的交点出现在两个元素边界上的点处。 | |||
# 通过应用“mod 2 联合规则”(也称为“奇偶规则”)获得 MultiCurve 边界:如果某个点位于奇数个Curve元素的边界中,则该点位于MultiCurve的边界中。【???】 | |||
# 如果 MultiCurve 的所有元素都关闭,则关闭。 | |||
# 闭合的 MultiCurve 的边界始终为空。 | |||
=== MultiLineString 类 === | |||
MultiLineString 是由 LineString 元素组成的 MultiCurve 几何图形集合。 | |||
MultiLineString 示例:<br/> | |||
在区域 Map 上,MultiLineString可以代 table 河流系统或高速公路系统。 | |||
=== MultiSurface 类 === | |||
MultiSurface是由 surface 元素组成的几何集合。 MultiSurface 是不可实例化的类。'''它唯一可实例化的子类是 MultiPolygon'''。 | |||
MultiSurface 属性: | |||
# MultiSurface 内的面不相交。 | |||
# MultiSurface 内的曲面最多具有有限个点的相交。【而非相交于面】 | |||
=== MultiPolygon 类 === | |||
MultiPolygon 是由 Polygon 元素组成的 MultiSurface 对象。 | |||
MultiPolygon 示例: | |||
# 在区域地图上,MultiPolygon 可以代表湖泊系统。 | |||
MultiPolygon 规则: | |||
# MultiPolygon 没有两个 Polygon 元素的内部相交。 | |||
# MultiPolygon 没有两个 Polygon 元素交叉(上一个属性也禁止交叉)或在无数个点处接触。 | |||
# MultiPolygon 可能没有割线,尖峰或刺孔。 MultiPolygon 是常规的封闭点集。 | |||
# 具有多个 Polygon 的 MultiPolygon 内部没有连接。 MultiPolygon 内部的连接组件的数量等于 MultiPolygon 中的 Polygon 值的数量。 | |||
MultiPolygon 属性: | |||
# MultiPolygon 是二维几何。 | |||
# MultiPolygon 边界是一组与其 Polygon 元素的边界相对应的闭合曲线(LineString值)。 | |||
# MultiPolygon 边界中的每个 Curve 都恰好在一个 Polygon 元素的边界中。 | |||
# Polygon 元素边界中的每个 Curve 都位于 MultiPolygon 的边界中。 | |||
== 支持的空间数据格式 == | == 支持的空间数据格式 == | ||
== 几何格式正确性和有效性 == | == 几何格式正确性和有效性 == |
2021年3月26日 (五) 23:47的版本
关于空间数据类型
MySQL 空间扩展可实现地理 Feature 的生成,存储和分析:
- 表示空间值的数据类型
- 操纵空间值的功能
- 空间索引可缩短对空间列的访问时间
- 空间数据类型和功能可用于 MyISAM,InnoDB,NDB 和 ARCHIVE 表。对于空间列的索引,MyISAM 和 InnoDB 支持 SPATIAL 和 非SPATIAL 索引。【???】
地理 Feature 是世界上任何具有位置的东西。功能可以是:
- 一个实体。例如,山,池塘,城市。
- 空间。例如,市区,热带地点。
- 可定义的位置。例如,十字路口,作为两条街道相交的特定位置。
空间数据类型
MySQL 具有与 OpenGIS 类相对应的空间数据类型。【???】
一些空间数据类型保存单个几何值:
- GEOMETRY【几何】
- POINT【点】
- LINESTRING【线】
- POLYGON【多边形】
- GEOMETRY 可以存储任何类型的几何值。其他单值类型(POINT,LINESTRING 和 POLYGON)将其值限制为特定的几何类型。
其他空间数据类型包含值的集合:
- MULTIPOINT【多点】
- MULTILINESTRING【多线】
- MULTIPOLYGON【多边形集】
- GEOMETRYCOLLECTION
- GEOMETRYCOLLECTION 可以存储任何类型的对象的集合。其他集合类型(MULTIPOINT,MULTILINESTRING 和 MULTIPOLYGON)将集合成员限制为具有特定几何类型的成员。
示例:要创建一个名为geom的 table,该 table 具有一个名为g的列,该列可以存储任何几何类型的值,请使用以下语句:
CREATE TABLE geom (g GEOMETRY);
- 可以在 NOT NULL 空间列上创建 SPATIAL 索引,因此,如果您打算为该列构建索引,请声明NOT NULL:
CREATE TABLE geom (g GEOMETRY NOT NULL);
OpenGIS 几何模型
OGC 的“SQL with Geometry Types”环境提出的几何类型集基于 OpenGIS Geometry Model 。在此模型中,每个几何对象都具有以下常规属性:
- 它与空间参考系统相关联,该系统描述了在其中定义对象的坐标空间。
- 它属于某些几何类。
GEOMETRY 类的层次结构:
- Geometry(不可实例化)
- Point(可实例)
- Curve(不可实例化)
- LineString(可实例)
- Line
- LinearRing(可实例)
- LineString(可实例)
- Surface(不可实例化)
- Polygon(可实例)
- GeometryCollection(可实例)
- MultiPoint(可实例)
- MultiCurve(不可实例化)
- MultiLineString(可实例)
- MultiSurface(不可实例化)
- MultiPolygon(可实例)
Geometry 是基础类。这是一个抽象类。 Geometry 的可实例化子类被限制为存在于二维坐标空间中的零、一和二维几何对象。
基本 Geometry 类具有 Point,Curve,Surface 和 GeometryCollection 的子类:
- Point 代表零维对象。
- Curve 代表一维对象,并具有子类别 LineString,以及子子类别 Line 和LinearRing 。
- Surface 是为二维对象设计的,具有子类 Polygon。
- GeometryCollection 具有名为 MultiPoint,MultiLineString 和 MultiPolygon 的专用零维,一维和二维收集类,用于分别建模与 Points,LineStrings 和 Polygons 的集合对应的几何形状。 MultiCurve 和 MultiSurface 作为抽象超类引入,它们泛化了收集接口以处理 Curves 和 Surfaces。
- Geometry,Curve,Surface,MultiCurve 和 MultiSurface 被定义为非实例类。它们为其子类定义了一组通用的方法,并且为了扩展性而将它们包括在内。
- Point,LineString,Polygon,GeometryCollection,MultiPoint,MultiLineString 和 MultiPolygon 是可实例化的类。
GEOMETRY 类
Geometry是层次结构的根类。它是一个不可实例化的类,但具有以下列表中描述的许多属性,这些属性对于从任何 Geometry子类创建的所有几何值都是共有的。(特定的子类具有自己的特定属性)
Geometry 属性:
- 它的 类型 。每个几何都属于层次结构中的可实例化类之一。
- 其 SRID 或空间参考标识符。该值标识与几何相关的空间参考系统,该系统描述了在其中定义几何对象的坐标空间。
- 在 MySQL 中,SRID 值是与几何值关联的整数。可用的最大 SRID 值为 232-1【???】。如果给出较大的值,则仅使用较低的 32 位。不管实际 SRID 值如何,所有计算均假设 SRID 为 0。 SRID 0 表示无限平坦的笛卡尔平面,其轴未分配任何单位。
- 它在空间参考系统中的“坐标”,表示为双精度(8 字节)数字。所有非空几何均包括至少一对“(X,Y)”坐标。空几何不包含坐标。
- 坐标与 SRID 相关。例如,在不同的坐标系中,即使对象具有相同的坐标,两个对象之间的距离也可能会有所不同,这是因为 平面 坐标系上的距离和 大地坐标 坐标系上的距离(地球表面)是不同的东西。
- 它的“内部”,“边界”和“外部”。
- 每个几何都在空间中占据某些位置。几何图形的外部是几何图形未占用的所有空间。内部是几何所占据的空间。边界是几何图形的内部和外部之间的接口。
- 其 MBR(最小边界矩形)或包络。这是由最小和最大“(X,Y)”坐标形成的边界几何:
((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))
- 该值是 simple 还是 nonsimple 。类型(LineString,MultiPoint,MultiLineString)的几何值可以是简单的或不简单的。每种类型自己确定其值的简单或非简单。【???】
- 该值是 closed 还是 notclosed 。类型(LineString,MultiString)的几何值已关闭或未关闭。每种类型自己确定其值的关闭或未关闭。
- 值是 空 还是 非空。如果几何没有任何点,则为空。未定义空几何的外部,内部和边界(即,它们由“NULL”值表示)。空几何定义为始终简单,面积为 0。
- 其 尺寸 。几何的尺寸可以为 -1、0、1 或 2:
- -1 为空的几何。【空几何】
- 0 用于没有长度和面积的几何。【点、点集】
- 1 用于非零长度和零面积的几何。【线、线集】
- 2 用于非零面积的几何。【几何】
- Point 对象的尺寸为零。 LineString 对象的尺寸为 1。Polygon对象的尺寸为 2。MultiPoint,MultiLineString 和 MultiPolygon 对象的尺寸与其组成的元素的尺寸相同。
Point 类
Point 是代表坐标空间中单个位置的几何。
Point示例:
- 想象一下有许多城市的大型世界地图。 Point 对象可以代表每个城市。
- 在城市地图上,Point 对象可以代表公交车站。
Point属性:
- X:坐标值。
- Y:坐标值。
- Point 被定义为零维几何。
- Point 的边界是空集。
Curve 类
Curve 是一维几何,通常由一系列点表示。 Curve的特定子类定义了点之间的插值类型。Curve是不可实例化的类。
Curve 属性:
- Curve具有其点的坐标。
- Curve被定义为一维几何。
- Curve如果不两次通过同一点,则很简单,不同之处是,如果起点和终点相同,则曲线仍可以是简单的。
- 如果 Curve 的起点等于端点,则为闭合。
- 闭合的 Curve 的边界为空。
- 未封闭的 Curve 的边界由其两个端点组成。
- 简单且封闭的Curve是 LinearRing。【环线】
LineString 类
LineString 是一种作为两点间直线插值的 Curve。
LineString 示例:
- 在世界地图上,LineString 个对象可以代表河流。
- 在城市地图中,LineString 个对象可以代表街道。
LineString 属性:
- LineString 具有段的坐标,由每个连续的点对定义。
- 如果 LineString 正好由两点组成,则它是 Line。【线段?】
- 如果 LineString 是封闭且简单的,则它是 LinearRing。【环线】
Surface 类
Surface是二维几何。这是一个不可实例化的类。它唯一的可实例化子类是 Polygon。
Surface 属性:
- Surface 被定义为二维几何。
- OpenGIS 规范将简单的 Surface 定义为一种几何形状,它由与单个外部边界和零个或多个内部边界相关联的单个“补丁”组成。
- 简单Surface的边界是与其外部和内部边界相对应的一组闭合曲线。
Polygon 类
Polygon 是代表多边几何图形的平面 Surface。它由单个外部边界和零个或多个内部边界定义,其中每个内部边界在 Polygon 中定义一个孔【???hole】。
Polygon 示例:
在区域地图上,Polygon 对象可以代表森林,地点等。
Polygon 属性:
- Polygon 的边界由一组 LinearRing 对象(即简单且闭合的 LineString 对象)组成,这些对象组成其外部和内部边界。
- Polygon 没有交叉的环。 Polygon 边界中的环可在 Point 处相交,但仅作为切线。
- Polygon 没有线条,尖峰 或 刺孔。
- Polygon 的内部是连接的点集。
- Polygon 可能有孔。有孔(hole)的 Polygon 的外部是未连接在一起的。每个孔都定义了外部的连接组件。
GeometryCollection 类
GeometryCollection 是一个几何,它是零个或多个任何类的几何的集合。
几何图形集合中的所有元素必须位于相同的空间参考系统(即,位于相同的坐标系)中。尽管以下各节中描述的 GeometryCollection 的子类可能会限制成员资格,但是几何集合的元素没有其他限制。限制可能基于:
- 元素类型(例如 MultiPoint 只能包含 Point 元素)
- 尺寸
- 限制元素之间的空间重叠程度
MultiPoint 类
MultiPoint 是由 Point 元素组成的几何集合。这些点没有以任何方式连接或排序。
MultiPoint 示例:
- 在世界地图上,MultiPoint 可以代表一连串的小岛。
- 在城市地图上,MultiPoint 可以代表售票处的网点。
MultiPoint 属性:
- MultiPoint 是零维几何。
- 如果 MultiPoint 的 Point 值中没有两个相等(具有相同的坐标值),则很简单。
- MultiPoint 的边界是空集。
MultiCurve 类
MultiCurve是由Curve个元素组成的几何集合。 MultiCurve是不可实例化的类。
MultiCurve 属性:
- MultiCurve 是一维几何。
- MultiCurve 仅当其所有元素都简单时才简单;两个元素之间唯一的交点出现在两个元素边界上的点处。
- 通过应用“mod 2 联合规则”(也称为“奇偶规则”)获得 MultiCurve 边界:如果某个点位于奇数个Curve元素的边界中,则该点位于MultiCurve的边界中。【???】
- 如果 MultiCurve 的所有元素都关闭,则关闭。
- 闭合的 MultiCurve 的边界始终为空。
MultiLineString 类
MultiLineString 是由 LineString 元素组成的 MultiCurve 几何图形集合。
MultiLineString 示例:
在区域 Map 上,MultiLineString可以代 table 河流系统或高速公路系统。
MultiSurface 类
MultiSurface是由 surface 元素组成的几何集合。 MultiSurface 是不可实例化的类。它唯一可实例化的子类是 MultiPolygon。
MultiSurface 属性:
- MultiSurface 内的面不相交。
- MultiSurface 内的曲面最多具有有限个点的相交。【而非相交于面】
MultiPolygon 类
MultiPolygon 是由 Polygon 元素组成的 MultiSurface 对象。
MultiPolygon 示例:
- 在区域地图上,MultiPolygon 可以代表湖泊系统。
MultiPolygon 规则:
- MultiPolygon 没有两个 Polygon 元素的内部相交。
- MultiPolygon 没有两个 Polygon 元素交叉(上一个属性也禁止交叉)或在无数个点处接触。
- MultiPolygon 可能没有割线,尖峰或刺孔。 MultiPolygon 是常规的封闭点集。
- 具有多个 Polygon 的 MultiPolygon 内部没有连接。 MultiPolygon 内部的连接组件的数量等于 MultiPolygon 中的 Polygon 值的数量。
MultiPolygon 属性:
- MultiPolygon 是二维几何。
- MultiPolygon 边界是一组与其 Polygon 元素的边界相对应的闭合曲线(LineString值)。
- MultiPolygon 边界中的每个 Curve 都恰好在一个 Polygon 元素的边界中。
- Polygon 元素边界中的每个 Curve 都位于 MultiPolygon 的边界中。