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