#### 12.15.9.1 Spatial Relation Functions That Use Object Shapes

The OpenGIS specification defines the following functions. They
test the relationship between two geometry values
`g1`

and `g2`

, using precise
object shapes. The return values 1 and 0 indicate true and
false, respectively.

`Crosses(``g1`

,`g2`

)

Returns 1 if `g1`

spatially crosses
`g2`

. Returns
`NULL`

if `g1`

is a
`Polygon`

or a
`MultiPolygon`

, or if
`g2`

is a `Point`

or a `MultiPoint`

. Otherwise, returns 0.

The term *spatially crosses* denotes a
spatial relation between two given geometries that has the
following properties:

The two geometries intersect

Their intersection results in a geometry that has a
dimension that is one less than the maximum dimension of
the two given geometries

Their intersection is not equal to either of the two
given geometries

`Touches(``g1`

,`g2`

)

Returns 1 or 0 to indicate whether
`g1`

spatially touches
`g2`

. Two geometries
*spatially touch* if the interiors of the
geometries do not intersect, but the boundary of one of the
geometries intersects either the boundary or the interior of
the other.