Skip to main content
Version: v2.x

Postgres: Filter Using Geospatial Data

PostGIS spatial relationship operators​

The _st_contains, _st_crosses, _st_equals, _st_intersects, _st_3d_intersects, _st_overlaps, _st_touches, _st_within, _st_d_within, and _st_3d_d_within operators are used to filter based on geometry like columns.

_st_d_within and _st_intersects can be used on geography columns also (but their 3D variations are for geometry only).

For more details on spatial relationship operators and Postgres equivalents, refer to the API reference.

Use JSON representation (see GeoJSON) of geometry and geography values in variables as shown in the following examples:

_st_contains​

_st_contains is a spatial operator that checks whether one geometry contains another. It returns values if the first geometry completely contains the second geometry.

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_crosses​

_st_crosses is a spatial operator that checks whether two geometries cross each other. It returns values if the two geometries cross one another.

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_equals​

_st_equals is a spatial operator that checks whether two geometries are equal. It returns values if the two geometries have the same shape and size.

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_intersects​

In this example, the getPointsWithinPolygon query takes in a polygon argument that defines a rectangular area on a map. The location field returns the latitude and longitude of points that intersect with the given polygon using the _st_intersects operator.

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_within​

_st_within is a spatial operator that checks whether one geometry is completely contained within another geometry. It returns values if the first geometry is completely contained within the second geometry.

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_d_within​

Fetch a list of geometry values which are within a 3-unit buffer from a given point value:

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_3d_d_within​

This is completely analogous to the _st_d_within example above, the only difference being that our coordinates now contain a z-value.

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_3d_intersects​

Fetch a list of (3D) geometry values which intersect a given polygon value:

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_overlaps​

_st_overlaps is a spatial operator that checks whether two geometries overlap each other and that their two compared geometries are of the same dimension. It returns values if the two geometries share some, but not all, points.

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_touches​

_st_touches is a spatial operator that checks whether two geometries share a boundary, but do not overlap. It returns values if the two geometries share one or more points on their boundaries.

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

Intersect operators on RASTER columns​

Intersect operators on columns with raster type are supported. Please submit a feature request via GitHub if you want support for more functions.

For more details on intersect operators on raster columns and Postgres equivalents, refer to the API reference.

_st_intersects_rast​

Filter the raster values which intersect the input raster value.

Executes the following SQL function:

boolean ST_Intersects( raster <raster-col> , raster <raster-value> );
GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_intersects_geom_nband​

Filter the raster values which intersect the input geometry value and optional band number.

Executes the following SQL function:

boolean ST_Intersects( raster <raster-col> , geometry geommin , integer nband=NULL );
GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

_st_intersects_nband_geom​

Filter the raster values (with specified band number) which intersect the input geometry value.

Executes the following SQL function:

boolean ST_Intersects( raster <raster-col> , integer nband , geometry geommin );
GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available