• Nenhum resultado encontrado

A LINGUAGEM DE CONSULTA GEOMDQL

5.3 OPERADORES DA LINGUAGEM GEOMDQL

5.3.1 Operadores Geogr´ aficos

Parte dos operadores geogr´aficos, apresentados no Cap´ıtulo 2, foram adicionados `a linguagem GeoMDQL, englobando:

operadores da classe bin´aria booleana [246], mais precisamente os operadores topol´ogicos definidos em [94, 45], os quais s˜ao apresentados na Se¸c˜ao 5.3.1.1, e operadores cardinais [132, 133, 260, 232, 133, 42, 89] (ver Se¸c˜ao 5.3.1.2).

operadores do tipo un´ario escalar [246], para c´alculo da ´area, comprimento e per´ımetro e tamb´em do tipo bin´ario escalar (e.g. operador de distˆancia). Estes operadores s˜ao apresentados na Se¸c˜ao 5.3.1.3.

operadores dos tipos un´ario espacial, bin´ario espacial e n-´ario espacial [246], que quando aplicados a um conjunto de geometrias, geram novas geometrias. Estes operadores s˜ao detalhados na Se¸c˜ao 5.3.1.4.

5.3.1.1 Operadores Topol´ogicos Esta se¸c˜ao lista os operadores topol´ogicos da linguagem GeoMDQL, os quais foram definidos originalmente em [94, 45] e adaptados para manipular membros dos n´ıveis de um cubo multidimensional e geogr´afico. A especifica¸c˜ao de cada um deles ´e dada a seguir:

Operador 1 (Touches).

Dado um conjunto de membros geogr´aficos, este operador retorna um subconjunto contendo todos os membros que s˜ao tocados por um determinado membro ou geometria. O primeiro parˆametro ´e um conjunto de membros geogr´aficos. O segundo parˆametro ´e o nome de um membro, sua geometria, ou ainda, um outro conjunto de membros geogr´aficos.

Sintaxe:

Touches(< M emberSet >,

< M emberN ame >| < MemberGeometry > | < MemberSet >)

Operador 2 (GeoIntersects).

Aplica a opera¸c˜ao topol´ogica de intersec¸c˜ao, retornando um conjunto com todos os membros geogr´aficos que intersectam determinado membro ou geometria. O primeiro parˆametro ´e um conjunto de membros geogr´aficos. O segundo parˆametro ´e o nome de um membro, sua geometria, ou ainda, um outro conjunto de membros geogr´aficos.

Sintaxe:

GeoIntersects(< M emberSet >,

5.3 OPERADORES DA LINGUAGEM GEOMDQL 73

Tamb´em foram inclu´ıdos na sintaxe da linguagem GeoMDQL os seguintes operadores: i) Disjoint - retorna um conjunto com todos os membros geogr´aficos que est˜ao disjuntos de um determinado membro ou geometria; ii) Crosses - retorna um conjunto com todos os membros geogr´aficos que s˜ao cruzados por um determinado membro ou geometria; iii) Equals - retorna um conjunto de todos os membros geogr´aficos que s˜ao iguais a um determinado membro ou geometria; iv) Within - retorna um conjunto de todos os membros geogr´aficos que contˆem um determinado membro ou geometria; v) Contains - retorna um conjunto de todos os membros que est˜ao contidos em um determinado membro ou geometria e vi) Overlaps - que retorna um conjunto com todos os membros que sobrep˜oem um determinado membro ou geometria. A sintaxe destes operadores ´e a mesma dos operadores Touches (Operador 1) e GeoIntersects (Operador 2).

5.3.1.2 Operadores Cardinais Esta se¸c˜ao exibe os operadores cardinais da linguagem GeoMDQL, os quais s˜ao baseados nas defini¸c˜oes apresentadas em [132, 133, 260, 232, 133, 42, 89] e adaptados para manipular membros geogr´aficos de um cubo multidimensional e geogr´afico. A especifica¸c˜ao de cada um deles ´e dada a seguir:

Operador 3 (AtNorthOf ).

Dado um conjunto de membros geogr´aficos, este operador retorna um subconjunto contendo todos os membros que est˜ao localizados ao norte de um determinado membro ou geometria. O primeiro parˆametro ´e um conjunto de membros geogr´aficos. O segundo parˆametro ´e o nome de um membro, uma geometria representando um membro geogr´afico, ou ainda, um outro conjunto de membros.

Sintaxe:

AtNorthOf(< M emberSet >

< M emberN ame >| < MemberGeometry > | < MemberSet >)

Os demais operadores cardinais adicionados `a GeoMDQL (i.e. AtSouthOf (ao sul), AtEastOf (ao leste), AtWestOf (ao oeste), AtNorthEastOf (ao nordeste), AtNorthWestOf (ao noroeste), AtSouthEastOf (ao sudeste) e AtSouthWestOf (ao sudoeste)) possuem a mesma sintaxe do operador AtNorthOf (Operador 3).

5.3.1.3 Operadores M´etricos Nesta se¸c˜ao, s˜ao discutidos os operadores GeoMDQL, que quando aplicados a geometrias retornam um valor escalar. Ent˜ao, definimos o operador Dis- tance, da classe bin´aria escalar [246], juntamente com os operadores Area, Perimeter e Length, que s˜ao da classe un´aria escalar [246].Todos eles est˜ao presentes na especifica¸c˜ao do OGC [45].

Operador 4 (Distance).

Este operador retorna, para cada membro geogr´afico de um dado conjunto, um valor correspon- dente `a distˆancia at´e um determinado membro ou geometria. O primeiro parˆametro ´e nome do

5.3 OPERADORES DA LINGUAGEM GEOMDQL 74

membro ou sua geometria. O segundo parˆametro ´e um conjunto de membros geogr´aficos.

Sintaxe:

Distance(< M emberN ame >| < MemberGeometry >, < MemberSet >)

Operador 5 (Area ).

Este operador, quando aplicado a um conjunto de membros geogr´aficos, retorna, para cada membro do conjunto, um valor escalar que corresponde a sua ´area geogr´afica. Este operador recebe como parˆametro um conjunto de membros geogr´aficos.

Sintaxe:

Area(< M emberSet >)

Operador 6 (Length ).

Este operador, quando aplicado a um conjunto de membros geogr´aficos, retorna, para cada membro do conjunto, um valor escalar que corresponde ao seu comprimento. Este operador recebe como parˆametro um conjunto de membros geogr´aficos.

Sintaxe:

Length(< M emberSet >)

Operador 7 (Perimeter ).

Este operador, quando aplicado a um conjunto de membros geogr´aficos, retorna, para cada membro do conjunto, um valor escalar que corresponde ao seu per´ımetro. Este operador recebe como parˆametro um conjunto de membros geogr´aficos.

Sintaxe:

Perimeter(< M emberSet >)

5.3.1.4 Operadores que Geram Novas Geometrias .

Nesta se¸c˜ao, apresentamos operadores que quando aplicados a um ou mais membros ge- ogr´aficos, geram novas geometrias. Estes operadores est˜ao presentes na especifica¸c˜ao do OGC [45], e foram adaptados para manipular membros de um cubo multidimensional e geogr´afico.

Operador 8 (Intersection ).

Retorna a geometria que corresponde `a intersec¸c˜ao entre duas outras. No primeiro e no segundo parˆametro, deve ser informado o nome do membro ou uma geometria v´alida.

Sintaxe:

Intersection(< M emberN ame >| < MemberGeometry >, < M emberN ame >| < MemberGeometry >)

Operador 9 (GeoUnion ).

Este operador retorna a uni˜ao das geometrias passadas como parˆametros. Podem ser passados como parˆametro, o nome ou a geometria de um membro, ou ainda um conjunto de membros.

5.3 OPERADORES DA LINGUAGEM GEOMDQL 75

Sintaxe:

GeoUnion(< M emberN ame >| < MemberGeometry >, < M emberN ame >| < MemberGeometry >)

GeoUnion(< M emberSet >)

Operador 10 (Difference).

Retorna a geometria que corresponde `a diferen¸ca da intersec¸c˜ao de dois membros geogr´aficos. No primeiro e segundo parˆametros, s˜ao passados o nome ou a geometria do membro geogr´afico.

Sintaxe:

Difference(< M emberN ame >| < MemberGeometry >, < M emberN ame >| < MemberGeometry >)

Operador 11 (BBox ).

Este operador retorna o m´ınimo retˆangulo envolvente de um membro geogr´afico. Pode ser aplicado a um membro ou conjunto de membros.

Sintaxe:

BBox(< M emberN ame >| < MemberGeometry >)

BBox(< M emberSet >)

Operador 12 (Buffer ).

Retorna a geometria formada pelos pontos localizados a uma distˆancia espec´ıfica e ao redor de um membro geogr´afico. Pode ser aplicado a um membro, sua geometria ou a um conjunto de membros.

Sintaxe:

Buffer(< M emberN ame >| < MemberGeometry >, < NumericExpression >)

Buffer(< M emberSet >, < N umericExpression >)

Operador 13 (ConvexHull ).

Retorna o limite exterior convexo de um membro geogr´afico ou conjunto de membros. Pode receber como parˆametro o nome de um membro, sua geometria ou um conjunto de membros.

Sintaxe:

ConvexHull(< M emberN ame >| < MemberGeometry > | < MemberSet >)

Operador 14 (Clipping ).

Este operador ´e utilizado para recortar uma ´area qualquer, pertencente a um membro ou con- junto de membros geogr´aficos. O segundo parˆametro deve ser uma geometria do tipo Pol´ıgono, representando a ´area que ser´a recortada. O primeiro parˆametro pode ser um membro geogr´afico, sua geometria, ou ainda, um conjunto de membros.

Sintaxe:

Clipping(< M emberN ame >| < MemberGeometry >, < MemberGeometry >)

5.3 OPERADORES DA LINGUAGEM GEOMDQL 76

Operador 15 (Point ).

Quando aplicado a um membro ou conjunto de membros do tipo pol´ıgono, este operador retorna uma geometria do tipo Ponto, que corresponde ao ponto central da geometria. Podem ser passados como parˆametro, o nome de um membro geogr´afico, sua geometria ou um conjunto de membros.

Sintaxe:

Point(< M emberN ame >| < MemberGeometry > | < MemberSet >)