A Hierarquia da Classe Geometry
As classes geometry definem uma hierarquia como a seguir:
Geometry
(não-instanciável)Point
(instanciável)Curve
(não-instanciável)LineString
(instanciável)Line
LinearRing
Surface
(não-instanciável)Polygon
(instanciável)
GeometryCollection
(instanciável)MultiPoint
(instanciável)MultiCurve
(não-instanciável)MultiLineString
(instanciável)
MultiSurface
(não-instanciável)MultiPolygon
(instanciável)
Algumas destas classes são abstratas (não-instanciável). Isto é, não é possível criar um objeto desta classe. Outras classes são instanciáveis e objetos podem ser criados deles. Cada classe tem propriedades e podem ter declarações (regras que definem intâncias de classes válidas).
Geometry
é a classe base. É uma classe abstrata (não-instanciável). As subclasses instanciáveis de Geometry
são restritas a objetos geométricos de zero, uma e duas dimensões que existem no espeaço de coordenadas bidimensional. Todas as classes geométricas instanciáveis são definidas para que instâncias válidas da classe geometry são topologicamente fechados (isto é, todas as geometrias definidas incluem seus limites).
A classe base Geometry
tem subclasses para Point
, Curve
, Surface
e GeometryCollection
:
Point
representam objetos sem dimensão.Curve
representam para objetos de uma dimensão, e tem a subclasseLineString
, com subclassesLine
eLinearRing
.Surface
é criado para objetos bidimensionais e tem a subclassePolygon
.GeometryCollection
tem classes de coleção com zero-, uma- e duas-dimensões chamadasMultiPoint
,MultiLineString
eMultiPolygon
para modelagem geométrica correspondente a coleções dePoints
,LineStrings
ePolygons
respectivamente.MultiCurve
eMultiSurface
são introduzidas como superclasses abastratas que generalizam a interface de coleção para tratarCurves
eSurfaces
.
Geometry
, Curve
, Surface
, MultiCurve
e MultiSurface
são definidos como classes não instanciáveis. Eles definem em conjunto de métodos comuns para suas subclasses e incluidos por razões de extensabilidade.
Point
, LineString
, Polygon
, GeometryCollection
, MultiPoint
, MultiLineString
, MultiPolygon
são classses instanciáveis.