EnvelopesIntersect devuelve 1 (TRUE) si las envolturas de las dos geometrías forman intersección y 0 (FALSE) si no es así.
Sintaxis
db2gse.EnvelopesIntersect(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo devuelto
Entero
Ejemplos
La función get_window recupera las coordenadas de la ventana de visualización a partir de la aplicación. El parámetro de ventana es realmente una estructura de forma de polígono que contiene una serie de coordenadas que representan el polígono de visualización. La función PolyFromShape convierte la forma de ventana de visualización en un polígono de DB2 Spatial Extender que la función EnvelopesIntersect utiliza como su envoltura de intersección. Se devuelven todos los polígonos de la zona SENSITIVE_AREAS que forman intersección con el interior o el límite de la ventana de visualización. Cada polígono se busca y carga del conjunto de resultados y se pasa a la función draw_polygon.
/* Obtener las coordenadas de la ventana de visualización como una forma de polígono. get_window(&window) /* Crear la expresión SQL. Se utilizará la función db2gse.EnvelopesIntersect para limitar el conjunto de resultados a los polígonos de zona que formen intersección con la envoltura de la ventana de visualización. */ 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 en la longitud de bytes de un polígono de forma de 5 puntos. */ blob_len = 128; /* Preparar la sentencia SQL. */ SQLPrepare(hstmt, (UCHAR *)sqlstmt, SQL_NTS); /* Definir pcbvalue1 en la forma de la ventana */ pcbvalue1 = blob_len; /* Vincular el parámetro de forma. */ SQLBindParameter (hstmt, 1, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_BLOB, blob_len,0, window, blob_len, &pcbvalue1); /* Ejecutar la consulta. */ rc = SQLExecute (hstmt); /* Asignar los resultados de la consulta, (los polígonos de zona) a la variable fetched_binary. */ SQLBindCol (hstmt, 1, SQL_C_Binary, fetched_binary, 100000, &ind_blob); /* Buscar y cargar cada polígono dentro de la ventana de visualización y mostrarlo. */ while(SQL_SUCCESS == (rc = SQLFetch(hstmt)) draw_polygon(fetched_binary);