ST_Intersects — バンド番号が省略された場合はラスタの凸包を考慮するだけです。指定したバンドのNODATA値でない値を持つピクセルがインタセクトする場合のみTRUEを返します。
boolean ST_Intersects(
raster
rast
,
integer
band
,
geometry
geommin
)
;
boolean ST_Intersects(
geometry
geommin
,
raster
rast
,
integer
nband=NULL
)
;
boolean ST_Intersects(
raster
rasta
,
raster
rastb
)
;
boolean ST_Intersects(
raster
rasta
,
integer
nbanda
,
raster
rastb
,
integer
nbandb=1
)
;
ジオメトリがラスタとインタセクトする場合にTRUEを返します。NODATA値は考慮に入れられるので、ジオメトリがNODATA値のみとインタセクトする場合には、FALSEを返します。バンドを指定しない場合は1番と仮定します。
ラスタ/ジオメトリとジオメトリ/ラスタの場合、 ST_Intersects(raster,nband,geometry)はラスタ空間で実行され(ジオメトリは最初にラスタに変換されます)、ST_Intersects(geometry, raster)はジオメトリ空間で実行されます(ラスタは最初にジオメトリに変換されます)。 |
この演算子はジオメトリ/ラスタで利用できるインデクスを使用します。 |
機能強化: 2.0.0 ラスタとラスタを引数にとる形式が導入されました。
SELECT A.rid, g.gid , ST_Intersects(A.rast, g.geom) As inter FROM dummy_rast AS A CROSS JOIN (VALUES (1, ST_Point(3427928, 5793243.85) ) , (2, ST_GeomFromText('LINESTRING(3427927.85 5793243.75,3427927.8 5793243.75,3427927.8 5793243.8)') ), (3, ST_GeomFromText('LINESTRING(1 2, 3 4)') ) ) As g(gid,geom) WHERE A.rid =2 ; rid | gid | inter -----+-----+------- 2 | 1 | t 2 | 2 | t 2 | 3 | f