使用者の手引きおよび解説書

ST_IsValid

ST_IsValid は ST_Geometry を引き数とし、それが有効であれば 1 (TRUE) を戻します。そうでなければ 0 (FALSE) を戻します。 DB2 データベースに挿入されている図形は、必ず地理情報エクステンダーによって地理情報データの妥当性を検査されてから挿入されるので、常に有効です。しかし、他社の DBMS の場合は入力の妥当性検査が行われない可能性もあるので、その場合は代わりにアプリケーションで妥当性検査を行う必要があります。

構文

db2gse.ST_IsValid(g db2gse.ST_Geometry)

戻りタイプ

整数

geotype 列および g1 列がある valid_test 表が作成されます。 geotype 列には、g1 図形列に格納されている図形サブクラスの名前が格納されます。

CREATE TABLE valid_test (geotype varchar(20), g1 db2gse.ST_Geometry)

INSERT ステートメントによって、サンプルのサブクラスが valid_test 表に挿入されます。

INSERT INTO valid_test VALUES( 
    'Point', db2gse.ST_PointFromText('point (10.02 20.01)', 
    db2gse.coordref()..srid(0))
)
 
INSERT INTO valid_test VALUES( 
'Linestring', 
db2gse.ST_LineFromText('linestring (10.02 20.01,10.32 23.98,11.92 25.64)', 
db2gse.coordref()..srid(0)) 
)
 
INSERT INTO valid_test VALUES(
'Polygon', db2gse.ST_PolyFromText('polygon ((10.02 20.01,11.92 35.64,
    25.02 34.15, 19.15 33.94,10.02 20.01))', db2gse.coordref()..srid(0))
)
 
INSERT INTO valid_test VALUES(
'Multipoint', db2gse.ST_MPointFromText('multipoint (10.02 20.01,10.32 23.98,
11.92 25.64)', db2gse.coordref()..srid(0))
)
 
INSERT INTO valid_test VALUES(
'Multilinestring', db2gse.ST_MLineFromText('multilinestring ((10.02 20.01,
10.32 23.98,11.92 25.64),(9.55 23.75,15.36 30.11))', 
db2gse.coordref()..srid(0)) 
)
 
INSERT INTO valid_test VALUES(
'Multipolygon', 
db2gse.ST_MPolyFromText('multipolygon (((10.02 20.01,11.92 35.64,
25.02 34.15,19.15 33.94,10.02 20.01)),((51.71 21.73,73.36 27.04,71.52 32.87,
52.43 31.90,51.71 21.73)))', db2gse.coordref()..srid(0)) 
)

SELECT ステートメントによって、 geotype の次元とともに geotype 列に格納されているサブクラス名がリストされます。

SELECT geotype, db2gse.ST_IsValid(g1) Valid FROM valid_test
GEOTYPE              Valid
-------------------- -------------
ST_Point                    1
ST_Linestring               1
ST_Polygon                  1
ST_Multipoint               1
ST_Multilinestring          1
ST_Multipolygon             1
6 record(s) selected.


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]