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