EnvelopesIntersect 將在兩個幾何包封產生交集時傳回 1 (TRUE);無交集時,則傳回 0 (FALSE)。
語法
db2gse.EnvelopesIntersect(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
回覆類型
Integer
範例
get_window 函數從應用程式擷取顯示視窗的座標。 實際上,視窗參數是多邊形形狀結構,它包含代表多邊形顯示畫面的座標字串。 PolyFromShape 函數將顯示視窗形狀轉換成 DB2 Spatial Extender 多邊形, EnvelopesIntersect 函數便將它作為自己的交集包封。 而傳回與顯示視窗的內部或界限交集的全部 SENSITIVE_AREAS 多邊形區域。 每一個多邊形將從結果集提取,並傳遞給 draw_polygon 函數。
/* 取得多邊形形狀的顯示視窗座標。 get_window(&window) /* 建立 SQL 表示式函數。db2gse.EnvelopesIntersect 函數 將用來限制結果集,僅包含那些與顯示視窗包封交集的 多邊形區域。 */ strcpy(sqlstmt, "select db2gse.AsBinaryShape(zone) from SENSITIVE_AREAS where db2gse.EnvelopesIntersect (zone, db2gse.PolyFromShape(cast(? as blob(1m)), db2gse.coordref()..srid(0)))"); /* 將 blob_len 設為 5 點多邊形形狀的位元組長度。 */ blob_len = 128; /* 準備 SQL 陳述式。 */ SQLPrepare(hstmt, (UCHAR *)sqlstmt, SQL_NTS); /* 將 pcbvalue1 設為視窗形狀 */ pcbvalue1 = blob_len; /* 連結形狀參數。 */ SQLBindParameter (hstmt, 1, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_BLOB, blob_len, 0, window, blob_len, &pcbvalue1); /* 執行查詢。 */ rc = SQLExecute (hstmt); /* 將查詢結果 (多邊形區域) 指定給 fetched_binary 變數。*/ SQLBindCol (hstmt, 1, SQL_C_Binary, fetched_binary, 100000, &ind_blob); /* 提取顯示視窗中的每一個多邊形並顯示。 */ while(SQL_SUCCESS == (rc = SQLFetch(hstmt)) draw_polygon(fetched_binary);