幾何クラスの階層は次のように定義されています。
-
Geometry
(インスタンス化不可能)Point
(インスタンス化可能)-
Curve
(インスタンス化不可能)-
LineString
(インスタンス化可能)Line
LinearRing
-
-
Surface
(インスタンス化不可能)Polygon
(インスタンス化可能)
-
GeometryCollection
(インスタンス化可能)MultiPoint
(インスタンス化可能)-
MultiCurve
(インスタンス化不可能)MultiLineString
(インスタンス化可能)
-
MultiSurface
(インスタンス化不可能)MultiPolygon
(インスタンス化可能)
インスタンス化不可能なクラスのオブジェクトは作成できません。インスタンス化可能なクラスのオブジェクトは作成できます。どのクラスもプロパティーを持ちますが、インスタンス化可能なクラスはさらに表明 (有効なクラスインスタンスを定義するルール) も持つことができます。
Geometry
は基本クラスです。これは抽象クラスです。Geometry
のインスタンス化可能なサブクラスは、2 次元座標空間内に存在する 0 次元、1 次元、および 2 次元の幾何オブジェクトに限定されます。インスタンス化可能な幾何クラスはすべて、幾何クラスの有効なインスタンスが位相的に閉じている (つまり、定義されたすべての幾何図形に境界が含まれる) ように定義されています。
Geometry
基本クラスには、Point
、Curve
、Surface
、および GeometryCollection
のサブクラスがあります。
Point
は 0 次元のオブジェクトを表します。Curve
は 1 次元のオブジェクトを表し、そのサブクラスLineString
は、Line
とLinearRing
をサブクラスに持ちます。Surface
は 2 次元のオブジェクト用に設計されたもので、Polygon
をサブクラスに持ちます。GeometryCollection
にはMultiPoint
、MultiLineString
、MultiPolygon
という 0、1、2 次元の特殊化コレクションクラスが用意されており、それぞれPoints
、LineStrings
、Polygons
のコレクションに対応する幾何図形をモデル化しています。MultiCurve
とMultiSurface
は、このコレクションインタフェースを汎化してCurves
およびSurfaces
を処理できるよう抽象スーパークラスとして導入されたものです。
Geometry
、Curve
、Surface
、MultiCurve
、および MultiSurface
は、インスタンス化不可能なクラスとして定義されています。これらはサブクラスに共通する一連のメソッドを定義しており、今後の拡張に含められます。
Point
、LineString
、Polygon
、GeometryCollection
、MultiPoint
、MultiLineString
、および MultiPolygon
はインスタンス化可能なクラスです。