<sect1 id="RT_Operators">
<title>Raster Operators</title>
- <refentry id="RT_Raster_Overlap">
+ <refentry id="RT_Raster_Intersect">
<refnamediv>
<refname>&&</refname>
- <refpurpose>Returns <varname>TRUE</varname> if A's bounding box overlaps B's.</refpurpose>
+ <refpurpose>Returns <varname>TRUE</varname> if A's bounding box intersects B's bounding box.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<refsection>
<title>Description</title>
- <para>The <varname>&&</varname> operator returns <varname>TRUE</varname> if the bounding box of raster A overlaps the bounding box of raster B.</para>
+ <para>The <varname>&&</varname> operator returns <varname>TRUE</varname> if the bounding box of raster A intersects the bounding box of raster B.</para>
<note><para>This operand will make use of any indexes that may be available on the
rasters.</para></note>
<refsection>
<title>Examples</title>
- <programlisting>SELECT A.rid As a_rid, B.rid As b_rid, A.rast && B.rast As overlap
+ <programlisting>SELECT A.rid As a_rid, B.rid As b_rid, A.rast && B.rast As intersect
FROM dummy_rast AS A CROSS JOIN dummy_rast AS B LIMIT 3;
- a_rid | b_rid | overlap
+ a_rid | b_rid | intersect
-------+-------+---------
2 | 2 | t
2 | 3 | f
CREATE OR REPLACE FUNCTION st_intersects(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
RETURNS boolean
- AS $$ SELECT $1 && $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN TRUE ELSE _st_intersects($1, $2, $3, $4) END $$
+ AS $$ SELECT $1 && $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN st_intersects(st_convexhull($1), st_convexhull($3)) ELSE _st_intersects($1, $2, $3, $4) END $$
LANGUAGE 'sql' IMMUTABLE
COST 1000;