4.2.1. Иерархия класса геометрии

4.2.1. Иерархия класса геометрии

Классы геометрии определяют свою иерархию следующим образом:

Geometry (non-instantiable)

Point (instantiable)

Curve (non-instantiable)

LineString (instantiable)

Line

LinearRing

Surface (non-instantiable)

Polygon (instantiable)

GeometryCollection (instantiable)

MultiPoint (instantiable)

MultiCurve (non-instantiable)

MultiLineString (instantiable)

MultiSurface (non-instantiable)

MultiPolygon (instantiable)

Невозможно создать объекты в non-instantiable классах. Возможно создать объекты в классах instantiable. Все классы имеют реквизиты, и классы instantiable могут также иметь утверждения (правила, которые определяют допустимые образцы класса).

Geometry базовый класс. Это абстрактный класс. Подклассы Geometry ограничены нуль-, одно- и двумерными геометрическими объектами, которые существуют в двумерном координатном пространстве. Все instantiable классы геометрии определены так, чтобы допустимые образцы класса были закрытой топологии (то есть, все определенные конфигурации включают их границу).

Основной класс 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 определены как non-instantiable классы. Они определяют общий набор методов для их подклассов и включены для расширяемости.

Point, LineString, Polygon, GeometryCollection, MultiPoint, MultiLineString и MultiPolygon instantiable классы.