Спецификация OpenGIS предусматривает следующую иерархию геометрических классов:
Geometry
Point
Curve
LineString
LinearRing
Surface
Polygon
GeometryCollection
MultiPoint
MultiCurve
MultiLineString
MultiSurface
MultiPolygon
Класс Geometry – базовый класс (неинстанцируемый). Инстанцируемые подклассы Geometry ограничены размерностью 0, 1 и 2 и существуют в двумерном координатном пространстве. Все объекты инстанцируемых классов предполагаются топологически замкнутыми (то есть каждый объект включает собственную границу).
Подклассами Geometry являются классы:
размерности 0 – точка (Point);
размерности 1 – кривая (Curve) и ее подкласс LineString с подклассом LinearRing;
размерности 2 – поверхность (Surface) и ее подкласс Polygon;
составных объектов – набор объектов (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 являются инстанцируемыми классами (в иерархии объектов выделены жирным шрифтом).