使用與參考手冊

EnvelopesIntersect

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);


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]