This function is the fast approximate version of GEOGRAPHY_INTERSECTS. It takes in two geospatial objects and determines whether any part of them overlap.
Approximate results are obtained by consulting the geospatial indexes (if any) for matches, and skipping the filter phase which reduces the result set to objects that truly intersect. This means that the rows returned by this function will have false positives but no false negatives.
APPROX_GEOGRAPHY_INTERSECTS ( geo1, geo2 )
- geo1, geo2: any valid geospatial object or WKT string: path, point or polygon.
If both geo1 and geo2 are points, this function only returns true if they are identical.
select count(1) -> from jogging_paths j1, jogging_paths j2 -> where -> APPROX_GEOGRAPHY_INTERSECTS(j1.shape, j2.shape); +----------+ | count(1) | +----------+ | 11569 | +----------+ select count(1) -> from jogging_paths j1, jogging_paths j2 -> where -> GEOGRAPHY_INTERSECTS(j1.shape, j2.shape); +----------+ | count(1) | +----------+ | 9134 | +----------+ select * from neighborhoods with (index = shape, resolution = 16) where approx_geography_intersects(shape,"POLYGON(...)");
(index = c, resolution = n) syntax is an optional optimization discussed in the section Special Spatial Tuning Parameters.