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