11.5.2.1 幾何クラスの階層

幾何クラスの階層は次のように定義されています。

  • Geometry (インスタンス化不可能)

    • Point (インスタンス化可能)

    • Curve (インスタンス化不可能)

      • LineString (インスタンス化可能)

        • Line

        • LinearRing

    • Surface (インスタンス化不可能)

      • Polygon (インスタンス化可能)

    • GeometryCollection (インスタンス化可能)

      • MultiPoint (インスタンス化可能)

      • MultiCurve (インスタンス化不可能)

        • MultiLineString (インスタンス化可能)

      • MultiSurface (インスタンス化不可能)

        • MultiPolygon (インスタンス化可能)

インスタンス化不可能なクラスのオブジェクトは作成できません。インスタンス化可能なクラスのオブジェクトは作成できます。どのクラスもプロパティーを持ちますが、インスタンス化可能なクラスはさらに表明 (有効なクラスインスタンスを定義するルール) も持つことができます。

Geometry は基本クラスです。これは抽象クラスです。Geometry のインスタンス化可能なサブクラスは、2 次元座標空間内に存在する 0 次元、1 次元、および 2 次元の幾何オブジェクトに限定されます。インスタンス化可能な幾何クラスはすべて、幾何クラスの有効なインスタンスが位相的に閉じている (つまり、定義されたすべての幾何図形に境界が含まれる) ように定義されています。

Geometry 基本クラスには、PointCurveSurface、および GeometryCollection のサブクラスがあります。

  • Point は 0 次元のオブジェクトを表します。

  • Curve は 1 次元のオブジェクトを表し、そのサブクラス LineString は、LineLinearRing をサブクラスに持ちます。

  • Surface は 2 次元のオブジェクト用に設計されたもので、Polygon をサブクラスに持ちます。

  • GeometryCollection には MultiPointMultiLineStringMultiPolygon という 0、1、2 次元の特殊化コレクションクラスが用意されており、それぞれ PointsLineStringsPolygons のコレクションに対応する幾何図形をモデル化しています。MultiCurveMultiSurface は、このコレクションインタフェースを汎化して Curves および Surfaces を処理できるよう抽象スーパークラスとして導入されたものです。

GeometryCurveSurfaceMultiCurve、および MultiSurface は、インスタンス化不可能なクラスとして定義されています。これらはサブクラスに共通する一連のメソッドを定義しており、今後の拡張に含められます。

PointLineStringPolygonGeometryCollectionMultiPointMultiLineString、および MultiPolygon はインスタンス化可能なクラスです。


User Comments
  Posted by Adam Prall on June 20, 2007
Useful for 3D work - if you're doing any mapping apps, check out http://mapguide.osgeo.org/ - lots of resources and discussion threads, help there.
Sign Up Login You must be logged in to post a comment.