Referência e Guia do Usuário

EnvelopesIntersect

EnvelopesIntersect retorna 1 (VERDADEIRO) se os envelopes de duas geometrias tiverem interseção; caso contrário retonará 0 (FALSO).

Sintaxe

db2gse.EnvelopesIntersect(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)

Tipo de retorno

Inteiro

Exemplos

A função da janela get_ recupera as coordenadas da janela de exibição da aplicação. O parâmetro da janela é, na verdade, uma estrutura de shape do polígono, que contém uma cadeia de coordenadas que representam o polígono de exibição. A função PolyFromShape converte o formato da janela de exibição em um polígono do DB2 Spatial Extender que a função EnvelopesIntersect utiliza como seu envelope de interseção. Todos os polígonos da zona SENSITIVE_SAREAS que fazem interseção com o interior ou com o limite da janela de exibição são retornados. Cada polígono é obtido do conjunto de resultados e passado à função draw_polygon.

/* Obter as coordenadas da janela de exibição como um shape do polígono.
get_window(&window)
 
/* Criar a expressão SQL. A função db2gse.EnvelopesIntersect
  será usada para limitar o conjunto de resultados somente nesses
  polígonos da zona
  que fazem interseção com o envelope da janela de exibição. */
strcpy(sqlstmt, "select db2gse.AsBinaryShape(zone) from SENSITIVE_AREAS where
db2gse.EnvelopesIntersect (zone, db2gse.PolyFromShape(cast(? as blob(1m)),
db2gse.coordref()..srid(0)))");
 
/* Definir blob_len para o comprimento do byte de um polígono
   de shape de 5 pontos. */
blob_len = 128;
 
/* Preparar as instruções SQL. */
SQLPrepare(hstmt, (UCHAR *)sqlstmt, SQL_NTS);
 
/* Definir pcbvalue1 para o shape da janela */
pcbvalue1 = blob_len;
 
/* Fazer o bind do parâmetro do shape */
SQLBindParameter (hstmt, 1, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_BLOB,
blob_len,0, window, blob_len, &pcbvalue1);
 
/* Executar a consulta */
rc = SQLExecute (hstmt);
 
/* Atribuir os resultados da consulta, (os polígonos da Zona) para a
   fetched_binary variable. */
SQLBindCol (hstmt, 1, SQL_C_Binary, fetched_binary, 100000, &ind_blob);
 
/* Buscar cada polígono dentro da janela de exibição e exibi-lo. */
while(SQL_SUCCESS == (rc = SQLFetch(hstmt))
  draw_polygon(fetched_binary);


[ Início da Página | Página Anterior | Próxima Página | Índice | Índice Remissivo ]