GEOGRAPHY_INTERSECTS

This function takes in two geospatial objects and determines whether any part of them overlap.

Syntax

GEOGRAPHY_INTERSECTS ( geo1, geo2 )

Arguments

  • geo1, geo2: any valid geospatial object or WKT string: path, point or polygon.

Important

If both geo1 and geo2 are points, this function only returns true if they are identical.

Return Type

Boolean

Examples

CREATE ROWSTORE TABLE neighborhoods (
id INT UNSIGNED NOT NULL PRIMARY KEY,
name VARCHAR(64) NOT NULL,
population INT UNSIGNED NOT NULL,
shape GEOGRAPHY NOT NULL,
centroid GEOGRAPHYPOINT NOT NULL,
index (shape) WITH (resolution = 8),
index (centroid)
);
INSERT INTO neighborhoods VALUES
(1, "Hamilton", 12346, "POLYGON((1 1,2 1,2 2, 1 2, 1 1))","POINT(1.5 1.5)"),
(2, "Probability Bay", 263951, "POLYGON((5 1,6 1,6 2,5 2,5 1))", "POINT(5.5 1.5)"),
(3, "Decentralized Park", 29265, "POLYGON((5 5,6 5,6 6,5 6,5 5))", "POINT(5.5 5.5)"),
(4, "Axiom Township", 845696, "POLYGON((1 5,2 5,2 6,1 6,1 5))", "POINT(1.5 5.5)"),
(5, "Elegant Island ", 987654, "POLYGON((3 3,4 3,4 4,3 4,3 3))", "POINT(3.5 3.5)");
SELECT id, name FROM neighborhoods
WHERE
GEOGRAPHY_INTERSECTS("POINT(3.94990499 3.69150746)", shape);
+----+----------------+
| id | name           |
+----+----------------+
|  5 | Elegant Island |
+----+----------------+
SELECT *
FROM neighborhoods WITH (index = shape, resolution = 16)
WHERE GEOGRAPHY_INTERSECTS(shape,"POLYGON(...)");

Important

The with (index = c, resolution = n) syntax is an optional optimization discussed in the section Special Spatial Tuning Parameters.

For more information about working with geospatial data, see Working with Geospatial Features.

Last modified: February 24, 2023

Was this article helpful?