
ST_Crosses takes two geometry columns and returns a boolean column. The function returns True
if the two geometries
cross; otherwise, it returns False
. Two geometries cross when their intersection is not empty and is not equal to
either of the geometries. The intersection must also have a dimensionality less than the maximum dimension of the two
input geometries.
This function is only relevant for the following combinations of geometries:
- multipoint/linestring
- multipoint/polygon
- linestring/polygon
- linestring/multipoint
- linestring/linestring
- polygon/multipoint
- polygon/linestring
For all other combinations the function will always return False
.
If the two geometry columns are in different spatial references, the function will automatically transform the second geometry into the spatial reference of the first.
Function | Syntax |
---|---|
Python | crosses(geometry1, geometry2) |
SQL | ST |
Scala | crosses(geometry1, geometry2) |
For more details, go to the GeoAnalytics Engine API reference for crosses.
This function implements the OpenGIS Simple Features Implementation Specification for SQL 1.2.1.
Examples
from geoanalytics.sql import functions as ST, Linestring, Polygon
data = [
(Polygon([[[0,0],[10,10],[20,0]]]), Linestring([[[5,2],[20,20]]])),
(Polygon([[[0,0],[10,10],[20,0]]]), Linestring([[[5,2],[9,9]]])),
]
df = spark.createDataFrame(data, ["polygon", "linestring"])
df.select(ST.crosses("polygon", "linestring").alias("crosses")).show()
+-------+
|crosses|
+-------+
| true|
| false|
+-------+
Version table
Release | Notes |
---|---|
1.0.0 | Python and SQL functions introduced |
1.5.0 | Scala function introduced |