目的
4つの倍精度値のバッファを使用して、MBR (最小外接矩形)型の値を設定します。値は、MBRを定義するxmin、ymin、xmax、およびymax座標を表わします。
構文規則
void FNC_MBRSetValue(GEO_HANDLE mbrHandle, double * mbrValue)
- GEO_HANDLE mbrHandle
- UDF/UDMの戻り値であると定義されているか、または外部ストアド プロシージャに対するINOUT/OUTパラメータであると定義されている、MBR型へのハンドル。
- double* mbrValue
- 4つの倍精度値を格納するバッファへのポインタ。
使用上の注意
FNC_MBRSetValueはMBR型の値を設定します。4つの倍精度値を含むバッファmbrValueがMBRハンドルとともにルーチンに入力として提供されます。
例: FNC呼び出しを使用してMBR型の値を設定する
次の関数は4つの倍精度値を入力として受け取り、MBRの値を返します。
CREATE FUNCTION mbrUDF1(P0 DOUBLE PRECISION, P1 DOUBLE PRECISION,
P2 DOUBLE PRECISION, P3 DOUBLE PRECISION)
RETURNS MBR
NO SQL
PARAMETER STYLE SQL
DETERMINISTIC
LANGUAGE C
EXTERNAL NAME 'CS!mbrUDF1!mbrUDF1.c';
void mbrUDF1 (DOUBLE_PRECISON* p0,
DOUBLE_PRECISON* p1,
DOUBLE_PRECISON* p2,
DOUBLE_PRECISON* p3,
GEO_HANDLE* resultMBR,
int* indicator_p0,
int* indicator_p1,
int* indicator_p2,
int* indicator_p3,
int* indicator_Result,
char sqlstate[6],
SQL_TEXT extname[129],
SQL_TEXT specific_name[129],
SQL_TEXT error_message[257] )
{
double* mbrBuffer;
int returnSize;
int mbrBufferSize;
mbrBufferSize = 4 * SIZEOF_DOUBLE_PRECISION;
mbrBuffer = (double*)FNC_Malloc(mbrBufferSize);
/* Set the double precision values in the buffer */
mbrBuffer[0] = *p0;
mbrBuffer[1] = *p1;
mbrBuffer[2] = *p2;
mbrBuffer[3] = *p3;
/* Set the MBR value */
FNC_MBRSetValue(*resultMBR, mbrBuffer);
*indicator_Result = 0;
FNC_free(mbrBuffer);
}