EnvelopesIntersect retorna 1 (VERDADEIRO) se os envelopes de duas figuras geométricas tiverem interseção; caso contrário retornará 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 formato 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 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 formato de 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.AsShape(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 formato de 5 pontos. */ blob_len = 128; /* Preparar as instruções SQL. */ SQLPrepare(hstmt, (UCHAR *)sqlstmt, SQL_NTS); /* Definir pcbvalue1 para o formato da janela */ pcbvalue1 = blob_len; /* Ligar o parâmetro do formato */ 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);