Dimitris Bilidas created SEDONA-119:
---------------------------------------
Summary: ST_Touches join query returns true for polygons whose
interiors intersect
Key: SEDONA-119
URL: https://issues.apache.org/jira/browse/SEDONA-119
Project: Apache Sedona
Issue Type: Bug
Reporter: Dimitris Bilidas
Consider the following example:
{code:java}
var polygonDf1 = sparkSession.sql("select ST_GeomFromWKT('POLYGON ((0 0, 10 10,
10 0, 0 0))') as p1")
polygonDf1.createOrReplaceTempView("polygondf1")
var polygonDf2 = sparkSession.sql("select ST_GeomFromWKT('POLYGON ((0 0, 1 1, 1
0, 0 0))') as p2")
polygonDf2.createOrReplaceTempView("polygondf2")
var rangeJoinDf = sparkSession.sql("select * from polygondf1, polygondf2 where
ST_Touches(polygondf1.p1,polygondf2.p2) ") {code}
The correct result should be empty, but SEDONA returns a result.
In case of a spatial filter, the correct result is returned. That is, if we
replace the last query with:
{code:java}
select * from polygondf1 where ST_Touches(polygondf1.p1,ST_GeomFromWKT('POLYGON
((0 0, 1 1, 1 0, 0 0))')){code}
Then, the result is indeed empty.
I have checked that JTS version 1.18.2 returns the correct answer, so the
problem must be somewhere else.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)