11.4.2.1 几何类层次结构

几何类定义层次结构如下:

  • Geometry(不可实例化)

  • Point(实例)

    • Curve(不可实例化)
  • LineString(实例)

  • Line

     - `LinearRing`
    
    • Surface(不可实例化)
  • Polygon(实例)

    • GeometryCollection(实例)
  • MultiPoint(实例)

    • MultiCurve(不可实例化)
  • MultiLineString(实例)

    • MultiSurface(不可实例化)
  • MultiPolygon(实例)

无法在非实例化类中创建对象。可以在实例化类中创建对象。所有类都具有属性,可实例化类也可能具有 assert(定义有效类实例的规则)。

Geometry是 Base Class。这是一个抽象类。 Geometry的可实例化子类被限制为存在于二维坐标空间中的零,一和二维几何对象。定义所有可实例化的几何类别,以便在拓扑上封闭该几何类别的有效实例(也就是说,所有定义的几何均包括其边界)。

基本Geometry类具有PointCurveSurfaceGeometryCollection的子类:

  • Point代 table 零维对象。

  • Curve代 table 一维对象,并具有子类别LineString,以及子子类别LineLinearRing

  • Surface是为二维对象设计的,具有子类Polygon

  • GeometryCollection具有名为MultiPointMultiLineStringMultiPolygon的专用零维,一维和二维收集类,用于分别建模与PointsLineStringsPolygons的集合对应的几何形状。 MultiCurveMultiSurface作为抽象超类引入,它们泛化了收集接口以处理CurvesSurfaces

GeometryCurveSurfaceMultiCurveMultiSurface被定义为非实例类。它们为其子类定义了一组通用的方法,并且为了扩展性而将它们包括在内。

PointLineStringPolygonGeometryCollectionMultiPointMultiLineStringMultiPolygon是可实例化的类。