I tried using PostGIS and it returns the same results. Everything is false
, except disjoint
.
This is the query:
SELECT
ST_Contains(ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'), ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'))
, ST_Contains(ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'), ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'))
, ST_Within(ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'), ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'))
, ST_Within(ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'), ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'))
, ST_Touches(ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'), ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'))
, ST_Touches(ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'), ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'))
, ST_Overlaps(ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'), ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'))
, ST_Overlaps(ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'), ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'))
, ST_Intersects(ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'), ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'))
, ST_Intersects(ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'), ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'))
, ST_Disjoint(ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'), ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'))
, ST_Disjoint(ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'), ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'))
, ST_Crosses(ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'), ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'))
, ST_Crosses(ST_GeomFromText('POINT(73605.6678152168 224272.897179866)'), ST_GeomFromText('LINESTRING(73647.8558546319 224394.875641653,73556.0590934128 224129.463266824)'))
So it seems your assumption is not correct. I’m not sure how to solve this. Perhaps your buffer option is not that bad after all.