ジオメトリクラスの階層は次のように定義されています。
-
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
はインスタンス化可能なクラスです。