»ç¿ëÀÚ ¾È³» ¹× ÂüÁ¶¼­

EnvelopesIntersect

EnvelopesIntersect´Â µÎ ±âÇÏÇÐÀÇ ¿£º§·ÎÇÁ°¡ ±³Â÷µÇ¸é 1(TRUE)À» ¸®ÅÏÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é 0(FALSE)À» ¸®ÅÏÇÕ´Ï´Ù.

±¸¹®

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

¸®ÅÏ À¯Çü

Integer

¿¹

get_window ÇÔ¼ö´Â ÀÀ¿ëÇÁ·Î±×·¥À¸·ÎºÎÅÍ È­¸éÇ¥½Ã âÀÇ ÁÂÇ¥¸¦ °Ë»öÇÕ´Ï´Ù. ⠸Ű³º¯¼ö´Â È­¸éÇ¥½Ã ´Ù°¢ÇüÀ» ³ªÅ¸³»´Â ÁÂÇ¥ ¹®ÀÚ¿­ÀÌ µé¾î ÀÖ´Â ½ÇÁ¦ ´Ù°¢Çü ¸ð¾ç ±¸Á¶ÀÔ´Ï´Ù. PolyFromShape ÇÔ¼ö´Â È­¸éÇ¥½Ã â ¸ð¾çÀ» EnvelopesIntersect ÇÔ¼ö°¡ ÀÌÀÇ ±³Â÷ ¿£º§·ÎÇÁ·Î »ç¿ëÇÏ´Â Spatial Extender ´Ù°¢ÇüÀ¸·Î º¯È¯ÇÕ´Ï´Ù. È­¸éÇ¥½Ã âÀÇ ³»ºÎ ¶Ç´Â °æ°è¿Í ±³Â÷ÇÏ´Â ¸ðµç SENSITIVE_AREAS ¿µ¿ª ´Ù°¢ÇüµéÀÌ ¸®Åϵ˴ϴÙ. °¢ ´Ù°¢ÇüÀº °á°ú ¼¼Æ®·ÎºÎÅÍ »çÀü ÃßÃâµÇ¾î draw_polygon ÇÔ¼ö·Î Àü´ÞµË´Ï´Ù.

/* Get the display window coordinates as a polygon shape.
get_window(&window)
 
/* SQL Ç¥Çö½ÄÀ» ÀÛ¼ºÇÕ´Ï´Ù. db2gse.EnvelopesIntersect ÇÔ¼ö¸¦
  »ç¿ëÇÏ¿© Ç¥½Ã âÀÇ ¿£º§·ÎÇÁ(envelope)¸¦ ±³Â÷ÇÏ´Â
  ¿µ¿ª ´Ù°¢Çü¸¸À¸·Î °á°ú ¼¼Æ®¸¦ Á¦ÇÑÇÕ´Ï´Ù. */
strcpy(sqlstmt, "select db2gse.AsShape(zone) from SENSITIVE_AREAS where
db2gse.EnvelopesIntersect (zone, db2gse.PolyFromShape(cast(? as blob(1m)),
db2gse.coordref()..srid(0)))");
 
/* 5Á¡ ¸ð¾ç ´Ù°¢ÇüÀÇ ¹ÙÀÌÆ® ±æÀÌ·Î blob_lenÀ» ¼³Á¤ÇÕ´Ï´Ù. */
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);


[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]