As seções precedentes apresentam três categorias de funções espaciais:
Esta seção apresenta mais três categorias:
Várias funções espaciais retornam informações sobre formas em que os recursos geográficos se relacionam ou se comparam. A maioria destas funções retornam um valor inteiro. Esta seção descreve as funções de predicados em geral e discute cada função individualmente.
As funções de predicado retornam 1 (VERDADEIRO) se uma comparação atender aos critérios da função, ou 0 (FALSO) se a comparação falhar. Os predicados que testam uma relação espacial comparam pares de figuras geométricas que podem ser de um tipo ou dimensão diferentes.
Os predicados comparam as coordenadas X e Y das figuras geométricas submetidas. As coordenadas Z e a medida (se existirem) serão ignoradas. Isto permite que as figuras geométricas tenham coordenadas Z ou medida para comparação com aquelas que não têm.
O Modelo de Interseção 9 Dimensionalmente Estendido (DE-9IM) 1 é uma abordagem matemática que define a relação espacial pair-wise entre figuras geométricas de tipos e dimensões diferentes. Este modelo expressa relações espaciais entre todos os tipos de figura geométrica como interseções pair-wise de seu interior, limite e exterior e consideração com a dimensão das interseções resultantes.
As figuras geométricas a e b: I(a ), B(a ), e E(a ) representam o interior, o limite e o exterior de a, respectivamente. E, I(b), B(b) e E(b) representam o interior, o limite e o exterior de b. As interseções de I(a), B(a), e E(a) com I(b), B(b) e E(b) produzem uma matriz 3 por 3. Cada interseção pode resultar em figuras geométricas de dimensões diferentes. Por exemplo, a interseção dos limites de dois polígonos consiste num ponto e numa cadeia de linha. Nesse caso, a função dim retornará a dimensão máxima de 1.
A função dim retorna um valor de 1, 0, 1 ou 2. 1 corresponde ao
conjunto nulo ou dim(null), que é retornado quando nenhuma interseção é
encontrada.
|
Interior
|
Limite
|
Exterior
|
Interior
|
dim(I(a) &intersect. I(b))
|
dim(I(a) &intersect. B(b))
|
dim(I(a) &intersect. E(b))
|
Limite
|
dim(B(a) &intersect. I(b))
|
dim(B(a) &intersect. B(b))
|
dim(B(a) &intersect. E(b))
|
Exterior
|
dim(E(a) &intersect. I(b))
|
dim(E(a) &intersect. B(b))
|
dim(E(a) &intersect. E(b))
|
Os resultados dos predicados da relação espacial podem ser entendidos ou verificados através da comparação de resultados do predicado com a matriz padrão que representa os valores aceitáveis para DE-9IM.
A matriz padrão contém os valores aceitáveis para cada célula da matriz de interseção. Os valores padrão possíveis são:
Por exemplo a seguinte matriz padrão do predicado ST_Within inclui os
valores T, F e *.
Tabela 41. Matriz para ST_Within
A matriz padrão do predicado ST_Within para combinações de figura geométrica. | ||||
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
T
|
*
|
F
|
|
Limite
|
*
|
*
|
F
|
|
Exterior
|
*
|
*
|
*
|
O predicado ST_Within retorna VERDADEIRO quando os interiores das duas figuras geométricas fazem interseção e quando o interior e o limite de a não faz interseção com o exterior de b. Todas as outras condições não importam.
Cada predicado tem pelo menos uma matriz padrão, mas alguns exigem mais que uma para descrever as relações de várias combinações de tipo de figura geométrica.
ST_Equals retorna 1 (VERDADEIRO) se duas figuras geométricas do mesmo tipo tiverem valores idênticos das coordenadas X,Y.
Figura 14. ST_Equals. As figuras geométricas serão iguais se possuírem coordenadas X,Y correspondentes.
![]() |
Tabela 42. Matriz para igualdade
A matriz padrão DE-9IM para igualdade assegura que os interiores fazem interseção e que nenhuma parte ou limite interior da figura geométrica faz interseção com o exterior de outra. | ||||
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
T
|
*
|
F
|
|
Limite
|
*
|
*
|
F
|
|
Exterior
|
F
|
F
|
*
|
Para obter mais informações, consulte ST_Equals.
ST_OrderingEquals compara duas figuras geométricas e retorna 1 (VERDADEIRO) se as figuras geométricas forem iguais e as coordenadas estiverem na mesma ordem; do contrário, retornará 0 (FALSO). Para obter mais informações, consulte ST_OrderingEquals.
ST_Disjoint retorna 1 (VERDADEIRO) se a interseção das duas figuras geométricas for um conjunto vazio.
Figura 15. ST_Disjoint. As figuras geométricas serão desunidas se não fizerem interseção entre si de alguma forma.
![]() |
Tabela 43. Matriz para ST_Disjoint
A matriz padrão do predicado ST_Disjoint simples indica que nem o interior nem o limite da figura geométrica fazem interseção. | ||||
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
F
|
F
|
*
|
|
Limite
|
F
|
F
|
*
|
|
Exterior
|
*
|
*
|
*
|
Para obter mais informações, consulte ST_Disjoint.
ST_Intersects retorna 1 (VERDADEIRO) se a interseção não resultar em um conjunto vazio. A interseção retorna o resultado oposto exato de ST_Disjoint.
O predicado ST_Intersects retorna VERDADEIRO se as condições de
quaisquer matrizes padrão seguintes retornarem VERDADEIRO.
Tabela 44. Matriz para ST_Intersects (1)
O predicado ST_Intersects retorna VERDADEIRO se os interiores das duas figuras geométricas fizerem interseção. | ||||
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
T
|
*
|
*
|
|
Limite
|
*
|
*
|
*
|
|
Exterior
|
*
|
*
|
*
|
Tabela 45. Matriz para ST_Intersects (2)
O predicado ST_Intersects retorna VERDADEIRO se o limite da primeira figura geométrica fizer interseção com o limite da segunda. | ||||
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
*
|
T
|
*
|
|
Limite
|
*
|
*
|
*
|
|
Exterior
|
*
|
*
|
*
|
Tabela 46. Matriz para ST_Intersects (3)
O predicado ST_Intersects retorna VERDADEIRO se o limite da primeira figura geométrica fizer interseção com o interior da segunda. | ||||
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
*
|
*
|
*
|
|
Limite
|
T
|
*
|
*
|
|
Exterior
|
*
|
*
|
*
|
Tabela 47. Matriz para ST_Intersects (4)
O predicado ST_Intersects retorna VERDADEIRO se os limites de qualquer figura geométrica fizerem interseção. | ||||
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
*
|
*
|
*
|
|
Limite
|
*
|
T
|
*
|
|
Exterior
|
*
|
*
|
*
|
Para obter mais informações, consulte ST_Intersects.
Esta função retorna 1 (VERDADEIRO) se os envelopes das duas figuras geométricas fizerem interseção. É uma função de conveniência que implementa eficientemente ST_Intersects (ST_Envelope(g1),ST_Envelope(g2)). Para obter mais informações, consulte EnvelopesIntersect.
ST_Touches retorna 1 (VERDADEIRO) se nenhum dos pontos comuns a ambas as figuras geométricas fizerem interseção com os interiores das duas. Pelo menos uma figura geométrica deve ser uma cadeia de linhas, polígono, cadeia de linhas múltiplas ou multipolígonos.
![]() |
As matrizes padrão mostram que o predicado ST_Touches retorna VERDADEIRO
quando os interiores da figura geométrica não fizerem interseção e o limite de
uma delas fizer interseção com o interior ou limite de outra.
Tabela 48. Matriz para ST_Touches (1)
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
F
|
T
|
*
|
|
Limite
|
*
|
*
|
*
|
|
Exterior
|
*
|
*
|
*
|
Tabela 49. Matriz para ST_Touches (2)
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
F
|
*
|
*
|
|
Limite
|
T
|
*
|
*
|
|
Exterior
|
*
|
*
|
*
|
Tabela 50. Matriz para ST_Touches (3)
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
F
|
*
|
*
|
|
Limite
|
*
|
T
|
*
|
|
Exterior
|
*
|
*
|
*
|
Para obter mais informações, consulte ST_Touches.
ST_Overlaps compara duas figuras geométricas da mesma dimensão. Ela retorna 1 (VERDADEIRO) se o conjunto de interseção resultar numa figura geométrica diferente de ambas, mas que tenha a mesma dimensão.
![]() |
A matriz padrão em Tabela 51 se aplica às sobreposições polígono/polígono,
MultiPonto/MultiPonto e multipolígono/multipolígono. Para estas
combinações, o predicado de sobreposição retornará VERDADEIRO se o interior de
ambas figuras geométricas fizerem interseção com o interior e exterior de
outras.
Tabela 51. Matriz para ST_Overlaps (1)
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
T
|
*
|
T
|
|
Limite
|
*
|
*
|
*
|
|
Exterior
|
T
|
*
|
*
|
A matriz padrão na Tabela 52 aplica-se a sobreposições de cadeia de linhas/cadeia de
linhas e cadeia de linhas múltiplas/cadeia de linhas múltiplas. Neste
caso, a interseção das figuras geométricas deverá resultar numa figura
geométrica que tenha uma dimensão 1 (outra cadeia de linha). Se a
dimensão da interseção dos interiores for 1, o predicado ST_Overlaps
retornaria FALSO, no entanto, o predicado ST_Crosses retornaria
VERDADEIRO.
Tabela 52. Matriz para ST_Overlaps (2)
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
1
|
*
|
T
|
|
Limite
|
*
|
*
|
*
|
|
Exterior
|
T
|
*
|
*
|
Para obter mais informações, consulte ST_Overlaps.
ST_Crosses recebe duas figuras geométricas e retorna 1 (TRUE) se:
ST_Crosses retorna 1 (TRUE) apenas para as comparações MultiPonto/polígono, MultiPonto/cadeia de linhas, cadeia de linhas/cadeia de linhas, cadeia de linhas/polígono e cadeia de linhas/multipolígono.
![]() |
A matriz padrão em Tabela 53 se aplica ao MultiPonto/cadeia de linhas, MultiPonto/cadeia
de linhas múltiplas, MultiPonto/polígono, MultiPonto/multipolígono, cadeia de
linhas/polígono, cadeia de linhas/multipolígono. A matriz indica que os
interiores devem fazer interseção e que o interior da primária (figura
geométrica a ) deve fazer interseção com o interior da secundária
(figura geométrica b ).
Tabela 53. Matriz para ST_Crosses (1)
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
T
|
*
|
T
|
|
Limite
|
*
|
*
|
*
|
|
Exterior
|
*
|
*
|
*
|
A matriz padrão na Tabela 54 aplica-se à cadeia de linhas/cadeia de linhas, cadeia de
linhas/cadeia de linhas múltiplas e cadeia de linhas múltiplas/cadeia de
linhas múltiplas. A matriz indica que a dimensão da interseção dos
interiores deve ser 0 (interseção num ponto). Se a dimensão desta
interseção for 1 (interseção numa cadeia de linha), o predicado ST_Crosses
retornará FALSO; no entanto, o predicado ST_Overlaps retornará
VERDADEIRO.
Tabela 54. Matriz para ST_Crosses (2)
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
0
|
*
|
*
|
|
Limite
|
*
|
*
|
*
|
|
Exterior
|
*
|
*
|
*
|
Para obter mais informações, consulte ST_Crosses.
ST_Within retorna 1 (VERDADEIRO) se a primeira figura geométrica estiver completamente dentro da segunda. ST_Within retorna o resultado oposto exato de ST_Contains.
![]() |
A matriz do predicado ST_Within indica que os interiores das duas
figuras geométricas devem fazer interseção e que o interior e o limite da
figura geométrica primária (figura geométrica a) não deve fazer
interseção com o exterior da segunda (figura geométrica b).
Tabela 55. Matriz para ST_Within
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
T
|
*
|
F
|
|
Limite
|
*
|
*
|
F
|
|
Exterior
|
*
|
*
|
*
|
Para obter mais informações, consulte ST_Within.
ST_Contains retorna 1 (VERDADEIRO) se a segunda figura geométrica estiver completamente dentro da primeira. O predicado ST_Contains retorna o resultado oposto exato do predicado ST_Within.
![]() |
A matriz padrão do predicado ST_Contains indica que o interior das duas
figuras geométricas deve fazer interseção e que o interior e limite da
secundária (figura geométrica b) não deve fazer interseção com o
exterior da primária (figura geométrica a).
Tabela 56. Matriz para ST_Contains
|
|
b
|
|
|
|
|
Interior
|
Limite
|
Exterior
|
a
|
Interior
|
T
|
*
|
*
|
|
Limite
|
*
|
*
|
*
|
|
Exterior
|
F
|
F
|
*
|
Para obter mais informações, consulte ST_Contains.
A função ST_Relate compara duas figuras geométricas e retornará 1 (VERDADEIRO) se as figuras geométricas atenderem às condições especificadas pela cadeia de matrizes padrão DE-91M, do contrário, a função retornará 0 (FALSO). Para obter mais informações, consulte ST_Relate.
A função ST_Distance informa a distância mínima que separa dois recursos desunidos. Se os recurso não estiverem desunidos, a função irá informar uma distância mínima de O.
Por exemplo, ST_Distance poderia informar a menor distância entre dois locais que uma aeronave deveria viajar. A Figura 20 ilustra estas informações.
Figura 20. Distância mínima entre duas cidades. ST_Distance pode tomar as coordenadas para as cidades de Los Angeles e Chicago como entrada e retornar uma valor indicando a distância mínima entre estes locais.
![]() |
Para obter mais informações, consulte ST_Distance.
O Spatial Extender fornece predicados e funções de transformação que geram novas figuras geométricas a partir de existentes.
A função ST_Intersection retorna o conjunto de interseção de duas figuras geométricas. Ele sempre retorna como uma coleção que indica a dimensão mínima das figuras geométricas de origem. Por exemplo, para uma cadeia de linhas que faça interseção com um polígono, a função de interseção retorna uma cadeia de linhas múltiplas composta dessa parte da cadeia de linhas comum ao interior e ao limite do polígono. A cadeia de linhas múltiplas conterá mais de uma cadeia de linhas se a cadeia de linhas de origem fizer interseção com o polígono com dois ou mais segmentos descontínuos. Se as figuras geométricas não fizerem interseção ou se a interseção resultar numa dimensão menor que ambas as figuras geométricas de origem, será retornada uma figura geométrica vazia.
Figura 21. ST_Intersection. Exemplos da função ST_Intersection.
![]() |
Para obter mais informações, consulte ST_Intersection.
ST_Difference recebe duas figuras geométricas como entrada. A primeira é chamada figura geométrica primária; a segunda, a figura geométrica secundária. A função ST_Difference retorna a parte da figura geométrica primária que não fez interseção com a segunda figura geométrica. Este é o E NÃO (AND NOT) lógico de espaço. A função ST_Difference opera somente em figuras geométricas de dimensão semelhante e retorna uma coleção que tem a mesma dimensão que as figuras geométricas de origem. No caso de as figuras geométricas serem iguais, será retornado uma figura geométrica vazia.Se as dimensões das figuras geométricas fornecidas ao ST_Difference como entrada não corresponderem, o ST_Difference retornará um nulo.
![]() |
Para obter mais informações, consulte ST_Difference.
A função ST_Union retorna o conjunto de união de duas figuras geométricas. Este é o OU (OR) lógico de espaço. As figuras geométricas de origem deve ser de dimensão semelhante. ST_Union sempre retorna o resultado como uma coleção.
![]() |
Para obter mais informações, consulte ST_Union.
A função ST_SymmetricDiff retorna a diferença simétrica (a lógica booleana XOR de espaço) de duas figuras geométricas de intersecção que possuem a mesma dimensão. Se essas figuras geométricas forem iguais, o ST_SymmetricDiff retornará uma figura geométrica vazia. Se forem diferentes, uma parte de uma delas ou de ambas ultrapassará a área de interseção. O ST_SymmetricDiff retornará a parte de não-interseção ou as partes como uma coleção; por exemplo, como um multipolígono.
Se ST_SymmetricDiff fornecer figuras geométricas de diferentes dimensões como entrada, ele retornará um nulo.
A função ST_Buffer gera uma figura geométrica englobando uma figura geométrica numa distância especificada. Um polígono resultará quando uma figura geométrica primária estiver em buffer, sempre que os elementos de uma coleção estiverem próximos o suficiente, de modo que todos os polígonos do buffer estejam sobrepostos. No entanto, quando há separação suficiente entre os elementos de uma coleção em buffer, resultarão polígonos individuais do buffer indicando, nesse caso, que a função ST_Buffer retorna multipolígonos.
![]() |
A função ST_Buffer aceita distâncias positivas e negativas, no entanto, somente figuras geométricas com dimensão dois (polígonos e multipolígonos) aplicam um buffer negativo. O valor absoluto da distância do buffer é usado sempre que a dimensão da figura geométrica de origem for menor que 2 (todas as figuras geométricas que não sejam polígonos ou multipolígonos).
Em geral, para anéis externos, as distâncias do buffer positivo geram anéis de polígonos que estejam distantes do centro da figura geométrica de origem; distâncias de buffer negativo geram anéis de polígonos ou multipolígonos em direção ao centro. Para anéis internos de um polígono ou multipolígonos, a distância de um buffer positivo gera um anel de buffer em direção ao centro e uma distância de um buffer negativo gera um anel de buffer a partir do centro.
O processo de buffer combina polígonos que se sobrepõem. As distâncias negativas maiores que metade da largura máxima do interior de um polígono resultam numa figura geométrica vazia.
Para obter mais informações, consulte ST_Buffer.
Para figuras geométricas que contêm medidas, a localização de uma determinada medida pode ser encontrada com a função LocateAlong. LocateAlong retorna a localização como um MultiPonto. Se a dimensão da figura geométrica de origem for zero 0 (por exemplo, um ponto e um MultiPonto), será necessária uma correspondência exata e esses pontos que têm um valor de medida correspondente serão retornados como um MultiPonto. Contudo, para figuras geométricas de origem cuja dimensão seja maior que 0, a localização será interpolada. Por exemplo, se o valor de medida digitado for 5,5 e as medidas nos vértices de uma cadeia de linha forem 3, 4, 5, 6 e 7 respectivamente, o ponto interpolado que ficar exatamente entre os vértices com valores de medida 5 e 6 retornarão.
![]() |
Para obter mais informações, consulte LocateAlong.
A função LocateBetween retorna o conjunto de caminhos ou localizações que ficam entre dois valores de medida de uma figura geométrica de origem que tenha medidas. Se a dimensão da figura geométrica de origem for 0, LocateBetween retornará um MultiPonto contendo todos os pontos cujas medidas estejam entre as duas medidas de origem. Para figuras geométricas de origem cuja dimensão é maior que 0, LocateBetween retornará uma cadeia de linhas múltiplas se for possível interpolar um caminho; do contrário, LocateBetween retornará um MultiPonto contendo as localizações do ponto. Um ponto vazio retornará sempre que LocateBetween não conseguir interpolar um caminho ou encontrar uma localização entre as medidas. LocateBetween executa uma pesquisa inclusiva das figuras geométricas; portanto as medidas das figuras geométricas devem ser maiores ou iguais à medida de origem e menores ou iguais à medida de destino.
![]() |
Para obter mais informações, consulte LocateBetween.
A função ST_ConvexHull retorna o polígono de casca convexa de qualquer figura geométrica que tenha pelo menos três vértices formando um convexo. Se os vértices da figura geométrica não formarem um convexo, ST_ConvexHull retornará um nulo. ST_ConvexHull geralmente é a primeira etapa em mosaico utilizada para criar uma rede TIN a partir de um conjunto de pontos.
![]() |
Para obter mais informações, consulte ST_ConvexHull.
Gera um polígono a partir de uma cadeia de linha. Para obter mais informações, consulte ST_Polygon.
O Spatial Extender suporta três formatos de troca de dados GIS:
O Spatial Extender possui várias funções que geram figuras geométricas a partir de descrições de textos.
A representação de texto é uma cadeia ASCII. Ela permite que a figura geométrica seja trocada no formato de texto ASCII. Estas funções não exigem a definição de estruturas de programas especiais para mapear uma representação do modo binário. Portanto, podem ser usadas num programa 3GL ou 4GL.
A função ST_AsText converte o valor de uma figura geométrica existente em representação de texto. Para obter mais informações, consulte ST_AsText.
Para obter uma descrição detalhada de representações de texto reconhecidas, consulte As representações de texto reconhecidas de OGC.
O Spatial Extender possui várias funções que geram figuras geométricas a partir de representações do modo binário reconhecidas (WKB).
A representação do modo binário reconhecida é um fluxo contíguo de bytes. Ela permite que a figura geométrica sejam trocada entre um cliente ODBC e um banco de dados SQL no modo binário. Estas funções de figura geométrica exigem a definição das estruturas C para mapear a representação do modo binário. Portanto, elas destinam-se ao uso dentro de um programa 3GL e não se adequam a um ambiente 4GL.
A função ST_AsBinary converte um valor de figura geométrica existente em representação do modo binário reconhecida. Para obter mais informações, consulte ST_AsBinary.
Para obter uma descrição detalhada de representações do modo binário reconhecidas, consulte As representações (WKB) do modo binário reconhecidas.
O Spatial Extender possui várias funções que geram figuras geométricas a partir de uma representação de formato ESRI. A representação de formato ESRI suporta coordenadas Z e medidas, além das representações bidimensionais suportadas pelas representações de texto e do modo binário reconhecidas.
A sintaxe geral destas funções é a mesma. O primeiro argumento é a representação de formato fornecida como tipo de dados BLOB. O segundo argumento é o identificador de referência espacial que será atribuído à figura geométrica. Por exemplo, a função GeometryFromShape apresenta a seguinte sintaxe:
GeometryFromShape(shapegeometry, SRID)
Para mapear a representação do modo binário, estas funções de formato exigem a definição de estruturas C. Portanto, elas destinam-se ao uso dentro de um programa 3GL e não se adequam a um ambiente 4GL.
A função AsBinary converte um valor de figura geométrica em uma representação de formato ESRI. Para obter mais informações, consulte AsShape.
Para obter uma descrição detalhada de representações de formato, consulte As representações de formato ESRI.