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