XOOPS Brasil

 

10.2. O Modelo Geomátrico OpenGIS

O conjunto de tipos geométricos, proposto pelo ambiente SQL com Tipos Geométricos da OGC, é base do Modelo Geométrico OpenGIS. Neste modelo, cada objeto geométrico tem as seguintes propriedades gerais:

  • é associado com um Sistema de Referência Espacial, que descreve a coordenada espacial, na qual o objeto é definido.

  • pertence a alguma classe geométrica.

10.2.1. 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 subclasse LineString, com subclasses Line e LinearRing.

  • Surface é criado para objetos bidimensionais e tem a subclasse Polygon.

  • GeometryCollection tem classes de coleção com zero-, uma- e duas-dimensões chamadas MultiPoint, MultiLineString e MultiPolygon para modelagem geométrica correspondente a coleções de Points, LineStrings e Polygons respectivamente. MultiCurve e MultiSurface são introduzidas como superclasses abastratas que generalizam a interface de coleção para tratar Curves e Surfaces.

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.

10.2.2. Classe Geometry

Geometry é a classe raiz da hierarquia. É uma classe não instanciável mas possui vária propriedades comuns a todos os valores de geometria de qualquer das subclasses Geometry. Estas propriedades estão descritas na lista a seguir ( Subclasses particulares tem as suas próprias propriedades específicas, descritas posteriormente):

Propriedades de geometria

Um valor geometry tem as seguintes propriedades:

  • É o tipo (type). Cada geometria pertence a uma das classes instanciáveis na hierarquia.

  • Seu SRID ou Identificador de Referência Espacial. Este valor identifica o Sistema de Referência Espacial associada da geometria, o qual descreve o coordenada espacial na qual objeto geomtrico está definido.

  • Coordenadas (coordinates) em seu Sistema de Referência Espacial, representado por um número de precisão dupla (8 byte). Todas as geometrias não-vazias incluem pelo menos um par de coordenadas (X,Y). Geometrias vazias não contem cooredenadas.

    Coordenadas estão relacionadas ao SRID. Por exemplo, em sistemas de coordenadas diferentes, a distância entre dois objetos podem diferir mesmo quando os objetos têm as mesmas coordenadas, porque as distâncias no sistema de coordenadas planar e a distância no sistema geocentrico (coordenadas na superfície da Terra) são coisas diferentes.

  • Seu interior (interior), limite (boundary) e exterior (exterior).

    Todas as geometrias ocupam alguma porção no espaço. O exterior de uma geometria é todo espaço não ocupado pela geometria. O interiro é o espeaço ocupado pela geometria. O limite é a interface entre o interior e o exterior

  • Seu MBR (Retângulo de Limite Mínimo - Minimum Bounding Rectangle), ou Envelope, da geometria. Este é a geometria limitar, formado pelas coordenadas de mínimo e máximo (X,Y):

    ((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))
    
  • A qualidade de ser simple ou non-simple (simples ou não simples). Valores geometricos alguns tipos (LineString, Multipoint, MultiLineString) podem ser simples ou não-simples. Cada tipo determina sua prórpia afirmação de ser simples ou não-simples.

  • A qualidade de ser closed ou not closed (fechado ou não fechado). Valores geométricos de alguns tipos (LineString, MultiString) podem ser fechado ou não fechado. Cada tipo determina a sua própria afirmação de ser fechado ou não fachado.

  • A qualidade de ser empty ou not empty (vazio ou não vazio). Uma geometria é vazia se ela não tem nenhum ponto. Exterior, interior e limite de ma geometria vazia não estão definidos. (isto é, eles são representados por valores NULL). Uma geometria vazia é definida sempre simples e ter um área de 0.

  • Sua dimensão (dimension). Uma geometria pode ter uma dimensão de −1, 0, 1 or 2:

    • −1 usado para geometrias vazias

    • 0 usado para geometrias sem tamanho e sem area.

    • 1 usado para geometrias com tamanho diferente de zero e sem area.

    • 2 usado para geometrias com area diferente de zero.

    Points tem uma dimensião de zero. LineStrings tem uma dimensão de 1. Polygons tem uma dimensão de 2. Dimensões de MultiPoints, MultiLineStrings e MultiPolygons são a é mesma da dimensão dos elementos dos quais eles consistem.

10.2.3. Classe Point

Um Point é uma geometria que representa um único local no espaço coordenado.

Exemplos de Point

  • Imagine um mapa do munod de larga-escala com muitas cidades. Um ponto poderia representar cada cidade.

  • Em um mapa da cidade, um Point poderia epresntar uma parada de onibus.

Propriedades de Point

  • Valor de coordenada X.

  • Valor da coordenada Y.

  • O Point é definido como uma geometria de dimensão zero.

  • O limite de um Point é um conjunto vazio.

10.2.4. Classe Curve

Uma Curve é uma geometria unidimensional, normalmente representado por uma sequência de pontos. Subclasses particulares de Curve define o tipo de interpolação entre pontos. Curve é uma classe não-instanciável.

Propriedades de Curve

  • As coordenadas de seus pontos.

  • Curve é definiido como uma geometria unidimensional.

  • A Curve é simples (simple) se ela não passa pelo mesmo ponto duas vezes.

  • A Curve é fechada (closed) se o ponto inicial é igual ao ponto final.

  • O limite (boundary) de uma Curve fechada é vazio.

  • O limite (boundary) de uma Curve não-fachada cociste do seus dois pontos finais.

  • A Curve que é simples (simple) e fechada (closed) é uma LinearRing.

10.2.5. Classe LineString

Uma LineString é uma Curve com interpolação linear entre pontos.

Exemplos de LineString

  • Em um mapa mundi uma LineStrings poderia representar os rios.

  • Um um mapa da cidade uma LineStrings poderia respresntar ruas.

Propriedades LineString

  • Coordenadas de segmentos LineString definidos por cada par de pontos consecutivos.

  • Uma LineString é uma Line, se ela consiste de exatamente dois pontos.

  • A LineString é uma LinearRing, se for fechada (closed) e simples (simple).

10.2.6. Classe Surface

Uma Surface é uma geometria bidimensional. Ele é uma classe não instanciável. Sua única subclasse instanciável é Polygon.

Propriedades de Surface

  • Uma Surface é definida com uma geomtria bidimensional.

  • A especificação OpenGIS define uma Surface simples como uma geometria que consiste de um único 'patch' que é associado com um 'exterior boundary' (limite exterior) e zero ou mais 'interior' boundaries (limites interiores).

  • O limite (boundary) de uma Surface simples é o conjunto de curvas fechadas correspondente a seus limites exterior e interior.

10.2.7. Classe Polygon

Um Polygon é uma Surface planar representando uma geometria multi-lados. Ela é definida por um limite exterior e zero ou mais limites interiores, onde cada limite interior define um buraco no Polygon.

Exemplos de Polygon

  • Em um mapa de região, objetos Polygon podem representar florestas, distritos, etc.

As afirmações para os polygons (as regras que definem polygons válidos) são:

  1. O limite (boundary) de um Polygon consiste de um conjunto de LinearRings (ex. LineStrings que são simples e fechadas) que fazem os seus limites interior e exterior.

  2. Dois aneis no limite não podem se cruzar. Os aneis no limite de um Polygon podem se interseptar em um Point, mas apenas como uma tangente.

  3. Um Polygon não pode ter linhas cortadas, pontas ou cavidades.

  4. O interior de cada Polygon e um conjunto de pontos conectados.

  5. O Exterior de um Polygon com um ou mais buracos não está conectado. Cada buraco define um componenete conectados do exterior.

Nas afirmações acimas, poligonos são geometrias simples. Estas afirmações fazem de um Polygon uma geometria simples.

10.2.8. Classe GeometryCollection

Um GeometryCollection é uma geometria que é um coleção de um ou mais geometrias de qualquer classe.

Todos os elementos em uma GeometryCollection deve estar no mesmo Sistema de Referência Espacial (ex. no mesmo sistema de coordenadas). GeometryCollection não coloca nenhuma outra restrição em seus elementos, embora as subclasses de GeometryCollection descritas abaixo possam restringir membros com base em:

  • Tipo de Elementos (por exemplo, um MultiPoint pode conter apenas elementos Point

  • Dimensão.

  • Restrições no grau de sobreposição espacial entre elementos.

10.2.9. Classe MultiPoint

Um MultiPoint é uma coleção de geometrias compostas de elementos Point. Os pontos não estão conectados ou ordenados de forma alguma.

Exemplos de MultiPoint

  • Em um mapa mundi, um Multipoint podia representar uma cadeia de pequenas ilhas.

Propriedades de MultiPoint

  • MultiPoint é definido com uma geometria sem dimensão.

  • Um MultiPoint é simples se não há dois valores de seus Point iguais no MultiPoint (tem valores de coordenadas iguais).

  • O limite (boundary) de um MultiPoint é um conjunto vazio.

10.2.10. Classe MultiCurve

Uma MultiCurve é uma coleção de geometria compostas de elementos Curve. MultiCurve é uma classe não instanciável.

Propriedades de MultiCurve

  • A MultiCurve é definida como uma geometria de uma dimensão.

  • A MultiCurve é simples se e somente se todos os seus elementos são simples, a única interseção entre quaisquer dois elementos ocorrem entre pontos que estão nos limites (boundaries) de ambos os elementos.

  • O limite (boundary) de uma MultiCurve é obtida aplicando a "mod 2 union rule": Um ponto está no limite (boundary) de uma MultiCurve se ele está no limite de um número ímpar de elementos da MultiCurve.

  • Um MultiCurve é fechado se todos os seus elementos são fechados.

  • O limite de uma MultiCurve fechada e sempre vazio.

10.2.11. Classe MultiLineString (Multi Linhas)

Um MultiLineString é uma coleção de geométrias MultiCurve composto de elementos LineString.

MultiLineString

  • Em uma mapa regional, um MultiLineString pode represntar um rede hidrografica ou uma malha de rodovias.

10.2.12. Classe MultiSurface (Multi Superfícies)

Um MultiSurface é uma coleção geometrica compostos de elementos de superfície MultiSurface é uma classe não instanciável. Sua única subclasse instanciável é MultiPolygon

Afirmações de MultiSurface

  1. O interior de quaisquer duas superfícies em uma MultiSurface não podem se interceptar.

  2. O limite de quaiqsquer dois elementos em um MultiSurface podem interceptar em um número finito de pontos.

10.2.13. Classe MultiPolygon (Multi Polígonos)

Um MultiPolygon é um objeto MultiSurface compostos de elementos Polygon.

Exemplos de MultiPolygon

  • Em um mapa regional, um MultiPolygon pode representar um sistema de lagos.

As afirações dos MultiPolygons são:

  1. O interior de dois valores Polygon que são elementos de um MultiPolygon não podem interceptar.

  2. Os limites (Boundaries) de quaisquer dois valores Polygon que são elementos de um MultiPolygon não podem cruzar e pode se tocar em um número finito de pontos. (O cruzamento também é proibido pela primeira afirmação.)

  3. Um MultiPolygon não pode ter linhas cortadas, pontas ou cavidades. Um MultiPolygon é um conjunto de pontos regular e fechado.

  4. O interior de um MultiPolygon composto por mais de um Polygon não está conectado, o número de componentes conectados do interior de um MultiPolygon é igual ao número de valores Polygon no MultiPolygon.

Propriedades de MultiPolygon

  • MultiPolygon é definido como uma geometria bidimensional.

  • O limite (boundary) de um MultiPolygon é um conjunto de curvas fechadas (valores LineStrings) correspondente ao limite dos valores seus elementos Polygon.

  • Cada Curve no limite do MultiPolygon este no limite de exatamente um elemento Polygon.

  • Toda Curve no limite de um elemento Polygon está no limite do MultiPolygon.