几何类定义了以下层次结构
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
是可实例化类。