Иерархия геометрических классов

Спецификация OpenGIS предусматривает следующую иерархию геометрических классов:

  • Geometry

    • Point

    • Curve

      • LineString

        • LinearRing

    • Surface

      • Polygon

    • GeometryCollection

      • MultiPoint

      • MultiCurve

        • MultiLineString

      • MultiSurface

        • MultiPolygon

Класс Geometry – базовый класс (неинстанцируемый). Инстанцируемые подклассы Geometry ограничены размерностью 0, 1 и 2 и существуют в двумерном координатном пространстве. Все объекты инстанцируемых классов предполагаются топологически замкнутыми (то есть каждый объект включает собственную границу).

Подклассами Geometry являются классы:

  1. размерности 0 – точка (Point);

  2. размерности 1 – кривая (Curve) и ее подкласс LineString с подклассом LinearRing;

  3. размерности 2 – поверхность (Surface) и ее подкласс Polygon;

  4. составных объектов – набор объектов (GeometryCollection):

    • размерности 0 – MultiPoint (набор классов Point);

    • размерности 1 – MultiLineString (набор классов LineString);

    • размерности 2 – MultiPolygon (набор классов Polygon).

Примечание

Подклассы MultiCurve и MultiSurface введены как абстрактные суперклассы для обобщения интерфейсов подклассов Curve и Surface соответственно.

Geometry, Curve, Surface, MultiCurve и MultiSurface определены как неинстанцируемые классы. Они определяют общий набор методов для своих подклассов.

Point, LineString, Polygon, GeometryCollection, MultiPoint, MultiLineString, MultiPolygon являются инстанцируемыми классами (в иерархии объектов выделены жирным шрифтом).