Good day,
In physics and mathematics, the dimension of an object is defined as the minimum number of coordinates needed to specify any point within it. Thus a POINT has no dimension (or it has a zero dimension), a line has a dimension of one, and a POLYGON has a dimension of two for exxample.
Since a POINT has no dimension it cannot intersect another POINT or a line.
Lines are said to intersect each other if they cut each other at a POINT . Same works with POLYGON.
Straight parallel lines can be concedered as intersect at any point if they are in the same position (like a POINT and a POINT) or as no intersect each other same as a POINT do not intersect a POINT or a LINE.
A POINT do not have a size or direction which mean a point cannot Intersects another POINT or a line.
A POINT can Intersects POLYGON if it is insied the POLYGON
Geospatial data types were added in SQL Server 2008 and this was NOT well implementyed first. If you will test your query on SQL Server 2008, then it will return 1 which is a mistake according to the defanition of Intersect In physics and mathematics. This issue was fixed in SQL Server 2012 and good that it was fixed!
By the way, this is a bit like the mistakes of comparing NULL to NULL. Since NULL is not a value, NULL is not necessarily the same as another NULL. Same as a POINT do not intersect a LINE or another POINT.
More information you can get from the following demo (read the comments)
DECLARE @LINE GEOMETRY;
DECLARE @POINT GEOMETRY;
DECLARE @polygon GEOMETRY;
SET @LINE = GEOMETRY::STGeomFromText('LINESTRING(0 2, 2 0, 4 2)', 4326);
SET @POINT = GEOMETRY::STGeomFromText('POINT(1 1)', 4326);
SET @polygon = GEOMETRY::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 4326)
-- Use SSMS and view the geometric objext in the graph.
-- You can notice that the point is at the same position as the line
select @LINE as a, @POINT as h, @polygon as P
-- but the POINT is not intersecting the line
-- Next we can determine if two geometry instances intersect each other.
SELECT [Intersect line and point] = @LINE.STIntersects(@POINT); --returns 0!
-- Lines are said to intersect each other if they cut each other at a point.
-- But a point do not have a size or direction which mean a point cannot Intersects another point or a line.
-- A point can Intersects POLYGON if it is insied the
SELECT @polygon.STIntersects(@POINT)
GO