几何类定义了以下层次结构
Geometry(不可实例化)Point(可实例化)Curve(不可实例化)LineString(可实例化)LineLinearRing
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 是可实例化类。